Hello all -
I've been trying to get a solution put together for about a week now, and have run into an obstacle I can't seem to overcome. The solution code is in large part copied from examples provided on this site.
I have an ASP form with a scheduler on it. When the user double clicks an appointment, I want to display my own custom edit form, which I achieved by following the code in demo:
http://demos.telerik.com/aspnet-ajax/scheduler/examples/raddock/defaultcs.aspx
That works fine.
Now, as part of my app, I also need to take timezones into account on the scheduler. To do that, I incorporated the code from the sample: http://www.telerik.com/help/aspnet-ajax/schedule_localizationhandlingtimezones.html into my project.
That works fine.
I also wanted to display an ajaxloading panel, which was included as part of the timezone sample.
That works fine.
Now the problem.
The radajaxmanager requires that there be a radscriptmanager present, and that it be located before the radajaxmanager. No problem, I put one in. Having done this, the AjaxLoadingPanel displays properly; however, the custom edit form for the scheduler refuses to display any of the data I set in it in the codebehind. In other words, I double click an appointment and the 2 raddatetimepickers I use are blank (They are the only 2 controls on my custom edit form, aside from an OK and Cancel button).
If I move the radscriptmanager _after_ the radajaxmanager, the custom appointment editor works fine (the datetimepickers are populated), however, the AjaxLoadingPanel quits displaying.
Here is a snippet of the code in which the AjaxLoadingPanel displays; however my edit form is broken, as described above.
As part of my custom edit form, I use some javascript, again, pulled straight from the demo code:
The code for my custom edit form:
Finally, here is the codebehind that I use to populate my custom edit form:
I realize this is a lot to throw at you in one post, but if you could provide a sample of the demo which takes timezones into account (http://www.telerik.com/help/aspnet-ajax/schedule_localizationhandlingtimezones.html); which also used a custom form editor on the scheduler..... my issue would (I think) be resolved, or you would have a test case which replicates the problem. Please let me know if more code snippets are needed...
Thanks
Matt
I've been trying to get a solution put together for about a week now, and have run into an obstacle I can't seem to overcome. The solution code is in large part copied from examples provided on this site.
I have an ASP form with a scheduler on it. When the user double clicks an appointment, I want to display my own custom edit form, which I achieved by following the code in demo:
http://demos.telerik.com/aspnet-ajax/scheduler/examples/raddock/defaultcs.aspx
That works fine.
Now, as part of my app, I also need to take timezones into account on the scheduler. To do that, I incorporated the code from the sample: http://www.telerik.com/help/aspnet-ajax/schedule_localizationhandlingtimezones.html into my project.
That works fine.
I also wanted to display an ajaxloading panel, which was included as part of the timezone sample.
That works fine.
Now the problem.
The radajaxmanager requires that there be a radscriptmanager present, and that it be located before the radajaxmanager. No problem, I put one in. Having done this, the AjaxLoadingPanel displays properly; however, the custom edit form for the scheduler refuses to display any of the data I set in it in the codebehind. In other words, I double click an appointment and the 2 raddatetimepickers I use are blank (They are the only 2 controls on my custom edit form, aside from an OK and Cancel button).
If I move the radscriptmanager _after_ the radajaxmanager, the custom appointment editor works fine (the datetimepickers are populated), however, the AjaxLoadingPanel quits displaying.
Here is a snippet of the code in which the AjaxLoadingPanel displays; however my edit form is broken, as described above.
<telerik:RadScriptManager ID="RadScriptManager" runat="server" EnablePageMethods="False"/> <telerik:RadAjaxManager ID="RadAjaxManager" runat="server" OnAjaxRequest="RadAjaxManager_AjaxRequest" DefaultLoadingPanelID="RadAjaxLoadingPanel"> <AjaxSettings> <telerik:AjaxSetting AjaxControlID="InterviewScheduler"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="InterviewScheduler" LoadingPanelID="RadAjaxLoadingPanel" /> </UpdatedControls> </telerik:AjaxSetting> <telerik:AjaxSetting AjaxControlID="SaveAddressButton"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="InterviewScheduler" LoadingPanelID="RadAjaxLoadingPanel" /> </UpdatedControls> </telerik:AjaxSetting> </AjaxSettings> </telerik:RadAjaxManager> <telerik:RadAjaxLoadingPanel ID="RadAjaxLoadingPanel" runat="server" Skin="Windows7"> Loading... </telerik:RadAjaxLoadingPanel>As part of my custom edit form, I use some javascript, again, pulled straight from the demo code:
<telerik:RadScriptBlock runat="server" ID="RadScriptBlock"> <script type="text/javascript"> function openForm() { var dock = $find("<%= RadDock.ClientID %>"); // Center the RadDock on the screen var viewPort = $telerik.getViewPortSize(); var xPos = Math.round((viewPort.width - parseInt(dock.get_width())) / 2); var yPos = Math.round((viewPort.height - parseInt(dock.get_height())) / 2); $telerik.setLocation(dock.get_element(), { x: xPos, y: yPos }); dock.set_closed(false); Sys.Application.remove_load(openForm); } function hideForm() { var dock = $find("<%= RadDock.ClientID %>"); dock.set_closed(true); return true; } function dockMoved(sender, args) { //Return RadDock to his original HTML parent so it gets updated via ajax $get("<%= DockPanel.ClientID %>").appendChild(sender.get_element()); } </script> </telerik:RadScriptBlock>The code for my custom edit form:
<asp:Panel runat="server" ID="DockPanel"> <telerik:RadDock runat="server" ID="RadDock" Width="320px" Height="220px" Closed="true" Style="z-index: 2000;" Title="Edit" OnClientDockPositionChanged="dockMoved" Skin="Web20"> <%-- <Commands> <telerik:DockCloseCommand /> </Commands>--%> <ContentTemplate> <div class="editForm"> <div class="header"> <asp:Label runat="server" ID="StatusLabel"></asp:Label> </div> <div class="content"> <fieldset style="width: 280px"> <legend style="font-family: verdana; font-size: 8pt; font-weight: normal">Date Selection</legend> <table width="100%"> <tr> <td> Starts at: </td> <td> <telerik:RadDateTimePicker AutoPostBackControl="Both" ID="StartTime" runat="server" SharedCalendarID="SharedCalendar" Skin="Office2007" OnSelectedDateChanged="StartTime_SelectedDateChanged"> </telerik:RadDateTimePicker> </td> </tr> <tr> <td> Ends at: </td> <td> <telerik:RadDateTimePicker ID="EndTime" runat="server" SharedCalendarID="SharedCalendar" EnableTyping="False" Skin="Office2007"> </telerik:RadDateTimePicker> </td> </tr> </table> </fieldset> </div> <div class="footer"> <telerik:RadButton ID="SubmitButton" runat="server" Text="OK" OnClick="SubmitButton_Click" Skin="Windows7" /> <telerik:RadButton ID="CancelButton" runat="server" Text="Cancel" OnClick="CancelButton_Click" Skin="Windows7" /> </div> <telerik:RadCalendar ID="SharedCalendar" runat="server" EnableMonthYearFastNavigation="False" EnableMultiSelect="False" UseColumnHeadersAsSelectors="False" UseRowHeadersAsSelectors="False" Skin="Windows7" SelectedDate="" ViewSelectorText="x"> <WeekendDayStyle CssClass="rcWeekend" /> <CalendarTableStyle CssClass="rcMainTable" /> <OtherMonthDayStyle CssClass="rcOtherMonth" /> <OutOfRangeDayStyle CssClass="rcOutOfRange" /> <DisabledDayStyle CssClass="rcDisabled" /> <SelectedDayStyle CssClass="rcSelected" /> <DayOverStyle CssClass="rcHover" /> <FastNavigationStyle CssClass="RadCalendarMonthView RadCalendarMonthView_Windows7" /> <ViewSelectorStyle CssClass="rcViewSel" /> </telerik:RadCalendar> </div> </ContentTemplate> </telerik:RadDock> </asp:Panel>Finally, here is the codebehind that I use to populate my custom edit form:
if (ApptSched.Count() > 0) { ScriptManager.RegisterStartupScript(Page, GetType(), "formScript", "Sys.Application.add_load(openForm);", true); InterviewScheduler.PrepareToEdit(e.Appointment, false); StartTime.SelectedDate = (DateTime)e.Appointment.Start.ToLocalTime(); EndTime.SelectedDate = Convert.ToDateTime(StartTime.SelectedDate).Add((TimeSpan)Session["EstimatedTimePerInterview"]); EndTime.Enabled = false; Session["ID"] = ApptSched.FirstOrDefault().ID.ToString(); }I realize this is a lot to throw at you in one post, but if you could provide a sample of the demo which takes timezones into account (http://www.telerik.com/help/aspnet-ajax/schedule_localizationhandlingtimezones.html); which also used a custom form editor on the scheduler..... my issue would (I think) be resolved, or you would have a test case which replicates the problem. Please let me know if more code snippets are needed...
Thanks
Matt