Categories | Question details Back To List | ||||||||||||||||||||||||||||||||||||||
Scheduler - Events still clickable through the popup window! When I double-click an event, I get the lightbox to show as a popup like I should. However, if there is an event underneath the lightbox, the cursor changes to the hand pointer and if a user double-clicks, lightbox updates to the text of that different event and the shading around the form darkens more. This keeps going and going and going. When I then click on the Close link on the lightbox, I'm left with an unusable page. I cannot click on anything. I have to hit F5 to refresh. Is there a way to get the lightbox to be truly modal and not allow events underneath of it to be visible/clickable? Jerry Answer posted by Alex (support) on Jan 06, 2010 06:39 The issue wasn't reproduced locally. Please provide the sample to reproduce it. Answer posted on Jan 06, 2010 06:49 Um, not sure I can as it, like most scheduler controls, is data-driven. I'll post what code I can: From the control: <div id="scheduler_here" class="dhx_cal_container" style='width:598px; height:580px; position:relative'> <div class="dhx_cal_navline"> <div class="dhx_cal_prev_button"> </div> <div class="dhx_cal_next_button"> </div> <div class="dhx_cal_today_button"></div> <div class="dhx_cal_date"></div> <div class="dhx_cal_tab" name="day_tab" style="right:190px;"></div> <div class="dhx_cal_tab" name="week_tab" style="right:125px;"></div> <div class="dhx_cal_tab" name="month_tab" style="right:50px;"></div> </div> <div class="dhx_cal_header"></div> <div class="dhx_cal_data"></div> </div> <script src="codebase/dhtmlxscheduler.js?<%=DateTime.Now.toString %>" type="text/javascript" charset="utf-8"></script> and its codebehind: Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load If Not IsPostBack Then Dim strScript As String strScript = "<script type='text/javascript'>" + vbCrLf strScript += "scheduler.config.xml_date = '%Y-%m-%d %h:%i%a';" + vbCrLf strScript += "scheduler.config.default_date = '%M %d, %Y';" + vbCrLf strScript += "scheduler.config.month_date = '%M %d, %Y';" + vbCrLf strScript += "scheduler.config.day_date = '%D, %M %d';" + vbCrLf strScript += "scheduler.config.hour_date = '%h:%i%a';" + vbCrLf strScript += "scheduler.config.readonly = true;" + vbCrLf strScript += "scheduler.config.details_on_dblclick = false;" + vbCrLf strScript += "scheduler.config.lightbox.sections = [" + vbCrLf strScript += " { name: 'description', height: 130, map_to: 'text', type: 'textarea', focus: true }," + vbCrLf strScript += " { name: 'time', height: 72, type: 'time', map_to: 'auto' }" + vbCrLf strScript += "]" + vbCrLf strScript += "scheduler.config.date_step = '7';" + vbCrLf strScript += "scheduler.config.multi_day = true;" + vbCrLf strScript += "scheduler.config.drag_create = false;" + vbCrLf strScript += "scheduler.config.drag_move = false;" + vbCrLf strScript += "scheduler.config.drag_resize = false;" + vbCrLf strScript += "scheduler.config.dblclick_create = false;" + vbCrLf strScript += "scheduler.config.show_loading = false;" + vbCrLf strScript += "scheduler.config.icons_edit = ['icon_cancel'];" + vbCrLf strScript += "scheduler.config.icons_select = ['icon_details'];" + vbCrLf strScript += "" + vbCrLf strScript += "scheduler.locale.labels.icon_delete = '';" + vbCrLf strScript += "scheduler.locale.labels.icon_save = '';" + vbCrLf strScript += "scheduler.locale.labels.icon_edit = '';" + vbCrLf strScript += "scheduler.init('scheduler_here', null, 'month');" + vbCrLf strScript += "" + vbCrLf strScript += "scheduler.setLoadMode('month');" + vbCrLf strScript += "" + vbCrLf strScript += "scheduler.attachEvent('onClick', function(id, e){" 'strScript += " scheduler._on_dbl_click(e);" strScript += " return false;" strScript += "})" strScript += "" + vbCrLf strScript += "scheduler.clearAll();" + vbCrLf strScript += "scheduler._loaded = {}; //clear cache markers" + vbCrLf strScript += "scheduler.load('codebase/schedulerData.aspx?myVar=" + DateTime.Now.ToString + "');" + vbCrLf strScript += "</script>" Page.ClientScript.RegisterStartupScript(Me.GetType, "startup", strScript) End If End Sub I've attached the dhtmlxscheduler .js and .css files (they've been modified slightly to customize/tweak them a bit) I've also attached 4 screenshots. 1) The original screen 2) The screen after double-clicking an event in the grid 3) The screen after double-clicking a different event *through* the popup 4) The screen after clicking Close on the popup. Attachments (6)
Answer posted by Alex (support) on Jan 06, 2010 07:36 You have change the scheduler styles - that is the reason for the issue. Try to set white backgroud color for the textarea in the lightbox. Probably it can solve the issue. Answer posted on Jan 06, 2010 07:57 Already tried that but I can't imagine the color of the textarea would prevent an underlying event from being clickable. It's like the pop-up window isn't modal like it should be. Hmmm...or perhaps if the popup is visible, the onDblClick should be disabled? Answer posted by Stanislav (support) on Jan 12, 2010 04:22 In IE , areas without bg color do not stop events, so event can be processed by lower layer. We can't reconstruct the same issue in local samples, so it must be related to custom styling of your solution. Answer posted on Jan 12, 2010 05:32 Thanks. I will keep that bgcolor issue in mind in the future. I was able to workaround it by, essentially, disabling the dbl-click once the lightbox was displayed and re-enabling the dbl-click after closing the lightbox.
Thanks. |