This is a migrated thread and some comments may be shown as answers.

Using Advancedform with webservices

8 Answers 91 Views
Scheduler
This is a migrated thread and some comments may be shown as answers.
Datamex
Top achievements
Rank 2
Datamex asked on 07 Aug 2009, 01:13 PM
Hello!

Would it be possible to combine the "Customize the Advanced Template" example with webservices? Currently this example is shown in the "server side API" and I need to use it in combination with a webservice. Could you perhaps provide me with an example?

Thanks in advance!

Bart

8 Answers, 1 is accepted

Sort by
0
Peter
Telerik team
answered on 10 Aug 2009, 02:07 PM
Hello Bart,

That's a good question. We have decided to prepare an online demo and help topic for this case. We will need some time to do this, but as soon as we are ready, we will contact you with the solution.


Best wishes,
Peter
the Telerik team

Instantly find answers to your questions on the new Telerik Support Portal.
Check out the tips for optimizing your support resource searches.
0
Datamex
Top achievements
Rank 2
answered on 08 Sep 2009, 10:35 AM
Many many many thanks for the sample project! It's awesome! Though I still have some small questions:

1.) I've tried to start editing and inserting in the AdvancedForm right away, making use of the "StartEditingInAdvancedForm" and "StartInsertingInAdvancedForm" tags, but it doesn't seem to work. It always opens the small form first. How can I fix this?

<telerik:RadScheduler runat="server"   
         ID="RadScheduler1"   
         Width="750px"             
         SelectedDate="2009-03-30" 
         DayStartTime="08:00:00" DayEndTime="18:00:00"   
         TimeZoneOffset="03:00:00"                     
         OnClientFormCreated="schedulerFormCreated"   
         ondatabound="RadScheduler1_DataBound"   
         StartEditingInAdvancedForm="True" 
         StartInsertingInAdvancedForm="True" 
      >       

2.) When I enable the timelineview again and try to add an appointment through there, by clicking on a timeslot, it automatically assumes I'm trying to add an appointment for a whole day, while my timeslots only represent an hour. In DayView, this seems to work as it should. How can I build in the same functionality in the TimelineView?

<TimelineView GroupingDirection="Vertical" SlotDuration="1:00:00" HeaderDateFormat="HH:mm" 
 GroupBy="User" NumberOfSlots="24" ColumnHeaderDateFormat ="HH:mm" /> 

3.) When I assign a color to my appointment in the "Modified_AddColorPicker-demo", the color doesn't show in the TimelineView. How can I fix this?

4.) When I assign an appointmet to both users "Alex" and "Bob" (for example), it only shows the appointment in the TimelineView in Bob's row. Why doesn't it appear in both user-rows? Would this be possible? And would it then be possible to, when I edit my appointment for Bob, also edit the appointment for Alex (in other words: linking one appointment to two or more users)?

5.) Would it also be possible to use the AdvancedForm usercontrol as a separate control (without combining it to the SchedulerControl). I tried, but when I try to run my project I get a NullReferenceException:

<uc1:AdvancedForm ID="AdvancedForm1" runat="server" Start="08:00" End="17:30" Mode="Insert" Subject="Hotseflots!" /> 

System.NullReferenceException was unhandled by user code  
  Message="De objectverwijzing is niet op een exemplaar van een object ingesteld." 
  Source="App_Web_idl6znha" 
  StackTrace:  
       bij SchedulerTemplatesCS.AdvancedForm.get_Appointment() in c:\Documents and Settings\dmx\Bureaublad\SchedulerAdvancedFormTemplate_WS\DefaultTemplates\CS\AdvancedForm.ascx.cs:regel 73  
       bij SchedulerTemplatesCS.AdvancedForm.get_Owner() in c:\Documents and Settings\dmx\Bureaublad\SchedulerAdvancedFormTemplate_WS\DefaultTemplates\CS\AdvancedForm.ascx.cs:regel 64  
       bij SchedulerTemplatesCS.AdvancedForm.set_Start(DateTime value) in c:\Documents and Settings\dmx\Bureaublad\SchedulerAdvancedFormTemplate_WS\DefaultTemplates\CS\AdvancedForm.ascx.cs:regel 426  
       bij ASP.defaulttemplates_cs_test_aspx.__BuildControlAdvancedForm1() in c:\Documents and Settings\dmx\Bureaublad\SchedulerAdvancedFormTemplate_WS\DefaultTemplates\CS\Test.aspx:regel 16  
       bij ASP.defaulttemplates_cs_test_aspx.__BuildControlform1() in c:\Documents and Settings\dmx\Bureaublad\SchedulerAdvancedFormTemplate_WS\DefaultTemplates\CS\Test.aspx:regel 12  
       bij ASP.defaulttemplates_cs_test_aspx.__BuildControlTree(defaulttemplates_cs_test_aspx __ctrl) in c:\Documents and Settings\dmx\Bureaublad\SchedulerAdvancedFormTemplate_WS\DefaultTemplates\CS\Test.aspx:regel 1  
       bij ASP.defaulttemplates_cs_test_aspx.FrameworkInitialize() in c:\Documents and Settings\dmx\Bureaublad\SchedulerAdvancedFormTemplate_WS\DefaultTemplates\CS\Test.aspx.cs:regel 912307  
       bij System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)  
       bij System.Web.UI.Page.ProcessRequest()  
       bij System.Web.UI.Page.ProcessRequestWithNoAssert(HttpContext context)  
       bij System.Web.UI.Page.ProcessRequest(HttpContext context)  
       bij ASP.defaulttemplates_cs_test_aspx.ProcessRequest(HttpContext context) in c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\scheduleradvancedformtemplate_ws\6d432442\3eabf9be\App_Web_oyljvnpc.0.cs:regel 0  
       bij System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()  
       bij System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)  
  InnerException: 

This is where it crashes:

protected Appointment Appointment  
{  
  get 
  {  
    SchedulerFormContainer container = (SchedulerFormContainer) BindingContainer;  
-->  return container.Appointment;  
  }  

I would be very grateful if you can help me fix these little issues.
0
Peter
Telerik team
answered on 08 Sep 2009, 12:38 PM
Hello Bart,

Thank you for reporting these issues. Indeed, all of these are valid points. We will be ablt to address them early next week. I hope this is not too late for you.


Peter
the Telerik team

Instantly find answers to your questions on the new Telerik Support Portal.
Watch a video on how to optimize your support resource searches and check out more tips on the blogs.
0
Datamex
Top achievements
Rank 2
answered on 08 Sep 2009, 12:41 PM
That would be great! I just edited my post with another point (point 5). Would it be possible to address this point too?
0
Peter
Telerik team
answered on 08 Sep 2009, 03:18 PM

The AdvancedForm user control is intended to be used withing RadScheduler template. We will research how it can be used independently and include our findings on this issue as well when we reply next week.


Best wishes,
Peter
the Telerik team

Instantly find answers to your questions on the new Telerik Support Portal.
Watch a video on how to optimize your support resource searches and check out more tips on the blogs.
0
Datamex
Top achievements
Rank 2
answered on 16 Sep 2009, 02:21 PM
I don't want to look impatient, but is there already some progress with these points?
0
Peter
Telerik team
answered on 22 Sep 2009, 10:12 AM
Hi Bart,

Thank you for your patience. We still have not resolved all reported issues, since the problems turned out to be tough. We have been working on these issues for the past week and we will continue the effort untill everything is sorted out.


Peter
the Telerik team

Instantly find answers to your questions on the new Telerik Support Portal.
Watch a video on how to optimize your support resource searches and check out more tips on the blogs.
0
Peter
Telerik team
answered on 22 Sep 2009, 02:28 PM

So far we have resolved issues 1, 2 and 3 with the latest build:
http://www.telerik.com/account/latest-internal-builds.aspx

You will also have to modify the OnClientFormCreated handler like this:
 // Dictionary containing the advanced template client object  
            // for a given RadScheduler instance (the control ID is used as key).  
            var schedulerTemplates = {};  
          
            function schedulerFormCreated(scheduler, eventArgs) {  
                // Create a client-side object only for the advanced templates  
                var mode = eventArgs.get_mode();  
                if (mode == Telerik.Web.UI.SchedulerFormMode.AdvancedInsert ||  
                    mode == Telerik.Web.UI.SchedulerFormMode.AdvancedEdit) {  
                    // Initialize the client-side object for the advanced form  
                    var formElement = eventArgs.get_formElement();                    
                    var advancedTemplate = schedulerTemplates[scheduler.get_id()];                            
                    if (!advancedTemplate)  
                    {  
                        // Initialize the template for this RadScheduler instance  
                        // and cache it in the schedulerTemplates dictionary  
                        var schedulerElement = scheduler.get_element();  
                        var isModal = scheduler.get_advancedFormSettings().modal;  
                        advancedTemplate = new window.SchedulerAdvancedTemplate(schedulerElement, formElement, isModal);  
                        advancedTemplate.initialize();  
                          
                        schedulerTemplates[scheduler.get_id()] = advancedTemplate;  
                    }  
 
                    // Are we using Web Service data binding?  
                    if (!scheduler.get_webServiceSettings().get_isEmpty()) {  
                        // Populate the form with the appointment data  
                        var apt = eventArgs.get_appointment();  
                        var isInsert = mode == Telerik.Web.UI.SchedulerFormMode.AdvancedInsert;  
                        var editSeries = eventArgs.get_editingRecurringSeries();  
                        advancedTemplate.populate(apt, isInsert, editSeries);  
                    }  
                }  
            } 

The kb article has been updated with the above change too:
http://www.telerik.com/support/kb/aspnet-ajax/scheduler/sample-project-of-customizing-the-advanced-form-in-client-side-binding-mode-web-services.aspx

We will continue working on problem 4.

Problem 5, even though technically possible, will require a lot of complicated changes to the current code and we won't be able to provide such an example any time soon.  


Peter
the Telerik team

Instantly find answers to your questions on the new Telerik Support Portal.
Watch a video on how to optimize your support resource searches and check out more tips on the blogs.
Tags
Scheduler
Asked by
Datamex
Top achievements
Rank 2
Answers by
Peter
Telerik team
Datamex
Top achievements
Rank 2
Share this question
or