Template and DataBinding

14 posts, 1 answers
  1. rgf21
    rgf21 avatar
    100 posts
    Member since:
    May 2007

    Posted 13 Feb 2008 Link to this post

    Hi. I have this code:

            <telerik:RadScheduler ID="RadScheduler1" runat="server" Culture="Portuguese (Portugal)" 
                Height="440px" SelectedView="WeekView" Skin="Web20" Width="751px" DayEndTime="1.00:00:00" DayStartTime="06:00:00" OverflowBehavior="Scroll" ShowFooter="False" ShowViewTabs="False" AllowDelete="True" AllowEdit="True" AllowInsert="True" DataEndField="Fim" DataKeyField="ID" DataSourceID="SqlAulas" DataStartField="Inicio" DataSubjectField="Assunto" FirstDayOfWeek="Monday" LastDayOfWeek="Saturday" DataMember="DefaultView" EnableTheming="True" ShowAllDayRow="False" WorkDayEndTime="23:00:00" WorkDayStartTime="06:00:00" EnableCustomAttributeEditing="True" ShowMonthlyColumnHeader="False">  
               <ResourceTypes> 
                    <telerik:ResourceType DataSourceID="SqlSessoes" ForeignKeyField="sessao_id" KeyField="id" 
                        Name="Tipo" TextField="descricao" /> 
                    <telerik:ResourceType DataSourceID="SqlFormadores" ForeignKeyField="formador_id" 
                        KeyField="user_id" Name="Formador" TextField="nome" /> 
                    <telerik:ResourceType DataSourceID="SqlUFs" ForeignKeyField="uf_id" KeyField="ID" 
                        Name="UF" TextField="Designacao" /> 
                </ResourceTypes> 
                <InlineInsertTemplate> 
       <asp:TextBox  
           ID="TitleTextBox" 
           runat="server" 
           Text='<%# Bind("Assunto") %>' 
           Width="90%" 
           TextMode="MultiLine" 
           Height="20px">  
       </asp:TextBox><br /> 
                       <radCb:RadComboBox ID="RadComboBox5" runat="server" DataMember="DefaultView" DataSourceID="SqlFormadores" 
                DataTextField="nome" DataValueField="user_id" Skin="Default" SkinsPath="~/RadControls/ComboBox/Skins" 
                Value='<%# Bind("formador_id") %>' Width="90px" AppendDataBoundItems="True">  
                           <Items> 
                               <radCb:RadComboBoxItem ID="RadComboBoxItem1" Text="Formador" runat="server" Selected="True" /> 
                           </Items> 
            </radCb:RadComboBox> 
            <br /> 
            <radCb:RadComboBox ID="RadComboBox4" runat="server" DataMember="DefaultView" DataSourceID="SqlSessoes" 
                DataTextField="descricao" DataValueField="id" Skin="Default" SkinsPath="~/RadControls/ComboBox/Skins" 
                Value='<%# Bind("sessao_id") %>' Width="90px" AppendDataBoundItems="True">  
                <Items> 
                    <radCb:RadComboBoxItem ID="RadComboBoxItem2" runat="server" Text="Sessão" Selected="True" /> 
                </Items> 
            </radCb:RadComboBox> 
            <br /> 
            <radCb:RadComboBox ID="RadComboBox3" runat="server" DataMember="DefaultView" DataSourceID="SqlUFs" 
                DataTextField="Designacao" DataValueField="ID" Skin="Default" SkinsPath="~/RadControls/ComboBox/Skins" 
                Value='<%# Bind("uf_id") %>' Width="90px" AppendDataBoundItems="True">  
                <Items> 
                    <radCb:RadComboBoxItem ID="RadComboBoxItem3" runat="server" Text="UF" Selected="True" /> 
                </Items> 
            </radCb:RadComboBox> 
            <br /> 
    <asp:CheckBox ID="CheckBox1" runat="server" Checked='<%# Bind("precenca") %>' Font-Names="Arial" Font-Size="Small" Text="Presenças" /><br /> 
    <asp:CheckBox ID="CheckBox2" runat="server" Checked='<%# Bind("sumario") %>' Font-Names="Arial" Font-Size="Small" Text="Sumário" /><br /> 
    <asp:CheckBox ID="CheckBox3" runat="server" Checked='<%# Bind("ocorrencias") %>' Font-Names="Arial" Font-Size="Small" Text="Ocorrências" /><br /> 
    <asp:CheckBox ID="CheckBox4" runat="server" Checked='<%# Bind("visitada") %>' Font-Names="Arial" Font-Size="Small" Text="Visitada" /><br /> 
    <asp:CheckBox ID="CheckBox5" runat="server" Checked='<%# Bind("realizada") %>' Font-Names="Arial" Font-Size="Small" Text="Realizada" /><br /> 
    <asp:CheckBox ID="CheckBox6" runat="server" Checked='<%# Bind("substituida") %>' Font-Names="Arial" Font-Size="Small" Text="Substituida" /><br /> 
       <asp:LinkButton  
           ID="InsertButton" 
           runat="server" 
           CommandName="Insert">  
               <asp:Image  
                   runat="server" 
                   ID="insertImage" 
                   ImageUrl="../Images/giscon/AppointmentEditOK.gif" 
                   AlternateText="insert" /> 
               </asp:LinkButton> 
               <asp:LinkButton  
                   ID="InsertCancelButton" 
                   runat="server" 
                   CausesValidation="False" 
                   CommandName="Cancel">  
                       <asp:Image  
                           runat="server" 
                           ID="Image3" 
                           ImageUrl="../Images/giscon/AppointmentEditCancel.gif" 
                           AlternateText="cancel" /> 
               </asp:LinkButton> 
     
    </InlineInsertTemplate>   
    <AppointmentTemplate> 
    <%# Eval("Assunto") %><br /> 
    <%# Eval("sessao_id") %> 
     
            
    </AppointmentTemplate>   
     
     
            </telerik:RadScheduler> 

    Everithing shows fine except the AppointmentTemplate that is giving me this error:  

    DataBinding: 'Telerik.Web.UI.Appointment' does not contain a property with the name 'Assunto'.

    But I have the Assunto in the DB.

    Can you help me please?


    thanks.

  2. Answer
    Peter
    Admin
    Peter avatar
    6637 posts

    Posted 14 Feb 2008 Link to this post

    Hi Ricardo,

    Please, be advised that when binding template controls you need to bind them to names of appointment's properties, not to column names. Please, try modifying your code like this:

    <%# Eval("Assunto") %>   --> <%# Eval("Subject") %>

    Please, let us know how this works out for you.


    Kind regards,
    Peter
    the Telerik team

    Instantly find answers to your questions at the new Telerik Support Center
  3. UI for ASP.NET Ajax is Ready for VS 2017
  4. License Developer
    License Developer avatar
    1 posts
    Member since:
    Sep 2008

    Posted 03 Oct 2008 Link to this post

    This answer is correct, after changing my column name to 'Subject' it properly pulled my DataSubjectField Column that i indicated within the attributes of the telerik scheduler.
  5. towpse
    towpse avatar
    224 posts
    Member since:
    Mar 2008

    Posted 20 Nov 2009 Link to this post

    I'm trying to solve a similar issue.

    I am using the web service scheduler provider technique to get data from a web service and bind it to the scheduler control.

    Here's my sample Control:

            <telerik:RadScheduler    ID="RadScheduler1"  
                                                runat="server"  
                                                Height="800px"  
                                                Skin="WebBlue" SelectedView="WeekView"  
                                                ShowFullTime="True"  
                                                StartInsertingInAdvancedForm="True"  
                                                MaximumRecurrenceCandidates="10000"  
                                                OnClientFormCreated="schedulerFormCreated" 
                                                OnResourcesPopulating="RadScheduler1_ResourcesPopulating"  
                                                DataEndField="End"  
                                                DataKeyField="ID"  
                                                DataRecurrenceField="RecurrenceRule"  
                                                DataRecurrenceParentKeyField="RecurrenceParentID" 
                                                DataStartField="Start"  
                                                DataSubjectField="Subject" 
                                                CustomAttributeNames="ControlScheduleType" 
                                                EnableCustomAttributeEditing="True" EnableResourceEditing="False"  ValidationGroup="RadScheduler1" > 
                 
                <WebServiceSettings Path="SchedulerWebService.asmx"  
                    ResourcePopulationMode="ServerSide" /> 
                
                <AppointmentContextMenuSettings EnableDefault="True" Skin="WebBlue" /> 
                <TimeSlotContextMenuSettings EnableDefault="true" /> 
                 
                <advancedform maximumheight="550px" modal="True" enablecustomattributeediting="True" enableresourceediting="False" /> 
                 
                <AppointmentTemplate> 
                    <div class="rsAptSubject"
                        <%# Eval("Subject") %> 
                    </div> 
                    <%# Eval("Description") %> 
                </AppointmentTemplate> 
                 
                <AdvancedEditTemplate> 
                    <scheduler:AdvancedForm runat="server" ID="AdvancedEditForm1" Mode="Edit" 
                        Subject='<%# Bind("Subject") %>' 
                        Description='<%# Bind("Description") %>'  
                        Start='<%# Bind("Start") %>' 
                        End='<%# Bind("End") %>' 
                        RecurrenceRuleText='<%# Bind("RecurrenceRule") %>' 
                        ControlScheduleType='<%# Bind("ControlScheduleType") %>' /> 
                </AdvancedEditTemplate> 
                 
                <AdvancedInsertTemplate> 
                    <scheduler:AdvancedForm runat="server" ID="AdvancedInsertForm1" Mode="Insert" 
                        Subject='<%# Bind("Subject") %>' 
                        Start='<%# Bind("Start") %>' 
                        End='<%# Bind("End") %>' 
                        Description='<%# Bind("Description") %>' 
                        RecurrenceRuleText='<%# Bind("RecurrenceRule") %>'  
                        ControlScheduleType='<%# Bind("ControlScheduleType") %>'/> 
                </AdvancedInsertTemplate> 
                  
                <TimelineView UserSelectable="false" /> 
                  
            </telerik:RadScheduler> 

    EDIT If I don't provide a CustomAttributeName string for CustomAttributeNames="" I get a message 

    DataBinding: 'Telerik.Web.UI.Appointment' does not contain a property with the name 'ControlScheduleType'

    Which makes sense because of this line

    ControlScheduleType='<%# Bind("ControlScheduleType") %>'/>


    If I provide CustomAttributeNames="ControlScheduleType" I get

    Object reference not set to an instance of an object


    My provider methods currently deal with the Telerik Appointment Class.
    i.e 

    public override void Insert(RadScheduler owner, Appointment appointmentToInsert) 
    public override IEnumerable<Appointment> GetAppointments(RadScheduler owner) 


    Of course the Appointment class does not have a ControlScheduleType property.

    I thought then I could make my own class that extends from Appointment and include my extra information.

    Public MyClass : Appointment { 
            public ControlScheduleType { get {return _type;} } 


    I then tried to replace the references to Appointment in my provider class with MyClass but I cannot compile it after doing that because I have not properly implemented Insert and Get method that take in or return Appointment objects.

    public override void Insert(RadScheduler owner, MyClass appointmentToInsert) 
    public override IEnumerable<MyClass> GetAppointments(RadScheduler owner) 


    Am I thinking about this correctly or am I missing something?
    I thought since MyClass is an Appointment it should satisfy the interface implementation.

    I followed the steps to add a combo box to my advance form using this KB article. Now I just need to bind the form to the MyClass : Appointment object that I am using to bind the schedule.

    THanks for any help.
  6. towpse
    towpse avatar
    224 posts
    Member since:
    Mar 2008

    Posted 24 Nov 2009 Link to this post

    I have the follwoing custom controls in the advanced form

                   <asp:Panel runat="server" ID="AdvancedControlsPanel" CssClass="rsAdvMoreControls">  
                      
                            <label> 
                                Time Zone:  
                            </label> 
                            <%--TODO OnClientSelectedIndexChanged="Hide controls for Schedule Type. I.e start has no end?"  --%> 
                            <telerik:RadComboBox ID="cmbTimeZone" class="TimeZone" runat="server" Width="186px" DataTextField="DisplayName" DataValueField="TimeZoneId" Skin="WebBlue" /> 
                      
                            <label> 
                                Control:  
                            </label> 
                            <%--TODO OnClientSelectedIndexChanged="Hide controls for Schedule Type. I.e start has no end?"  --%> 
                            <telerik:RadComboBox ID="cmbControlScheduleType" class="Control" runat="server" Width="186px" DataTextField="Name" DataValueField="ControlScheduleTypeId" Skin="WebBlue" />                        
       
                    </asp:Panel> 

    I've added the following properties to the code behind of the adbacned form

            ///Control Type  
            [Bindable(BindableSupport.Yes, BindingDirection.TwoWay)]  
            public int ControlScheduleType  
            {  
                get 
                {  
                    return int.Parse(cmbControlScheduleType.SelectedValue);  
                }  
     
                set 
                {  
                    // Store the selected country ID until we obtain the continent ID    
                    _selectedControlScheduleType = value;  
                }  
            }  
     
            ///Time Zone Id  
            [Bindable(BindableSupport.Yes, BindingDirection.TwoWay)]  
            public Guid TimeZoneId  
            {  
                get 
                {  
                    return new Guid(cmbTimeZone.SelectedValue);  
                }  
     
                set 
                {  
                    // Store the selected country ID until we obtain the continent ID    
                    _selectedTimeZone = value;  
                }  
            } 

    And I've created the methods to load up those drop down.

    How do I get this data out of the advanced form in javascript? Are there any built in methods to make this easier or do I need to rely on jquery to look for these controls in the DOM?

    EDIT:
    I want the selected value of these drop downs before I send off to the web service.

    function AppointmentWebServiceUpdating(sender, eventArgs) {  
        var info = eventArgs.get_schedulerInfo();  
        info.ScheduleType = 1; //TODO get from user selection  
        info.TimeZone = "9999O888-CDE6-449A-9105-4084B0AC24CE"; //TODO User selection  

    Can anyone offer any advice?
  7. towpse
    towpse avatar
    224 posts
    Member since:
    Mar 2008

    Posted 24 Nov 2009 Link to this post

    Oh and I can't use jquery class selectors becuase the telerik advacned form stuff overwrites all that stuff once it gets to the UI.
    Please help. Thanks.
  8. Peter
    Admin
    Peter avatar
    6637 posts

    Posted 26 Nov 2009 Link to this post

    Hi towps,

    Please, review the second part of the following help topic:
    http://www.telerik.com/help/aspnet-ajax/schedule_advancedformtemplate.html
    -> How to use the advanced user controls in Client Side binding mode (Web Services)

    You can download a working demo from here:
    http://www.telerik.com/support/kb/aspnet-ajax/scheduler/sample-project-of-customizing-the-advanced-form-in-client-side-binding-mode-web-services.aspx

    You are right - you need to use java script to access the controls in the advanced form.


    All the best,
    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.
  9. towpse
    towpse avatar
    224 posts
    Member since:
    Mar 2008

    Posted 02 Dec 2009 Link to this post

    Having some binding troubles. Hope someone can help.

    I have a combo box called cmbTimeZone on my advacned form.
                    <asp:Panel runat="server" ID="AdvancedControlsPanel" CssClass="rsAdvMoreControls"
                     
                            <table id = "tblUserData"
                             
                                <tr> 
                                    <td > 
                                        <label> 
                                            Time Zone: 
                                        </label> 
                                    </td> 
                                    <td class="rsTimePick"
                                            <telerik:RadComboBox  ID="cmbTimeZone"  
                                                                                OnItemDataBound="cmbTimeZone_TimeZoneDataBound"  
                                                                                OnClientItemDataBound="TimeZoneClientItemDataBound"  
                                                                                class="TimeZone"  
                                                                                runat="server"  
                                                                                Width="300" Height="150"   
                                                                                DataTextField="Display" DataValueField="Id"  
                                                                                Skin="WebBlue" /> 
                                    </td> 
                                </tr> 
                             
                            </table> 
                     
                    </asp:Panel> 


    I have a property called TimeZoneId
            ///Time Zone Id 
            [Bindable(BindableSupport.Yes, BindingDirection.TwoWay)] 
            public Guid TimeZoneId 
            { 
                get 
                { 
                    return new Guid(cmbTimeZone.SelectedValue); 
                } 
     
                set 
                { 
                    _selectedTimeZone = value
                    cmbTimeZone.SelectedValue = value.ToString(); 
     
                } 
            } 

    I load it up accordingly based on this help page.

    I tell the scheduler about a custom attribute called TimeZoneId
    CustomAttributeNames="TimeZoneId"

    And I tell it bind in the edit template
                <AdvancedEditTemplate> 
                    <scheduler:AdvancedForm runat="server" ID="AdvancedEditForm1" Mode="Edit" 
                        Subject='<%# Bind("Subject") %>' 
                        Description='<%# Bind("Description") %>'  
                        Start='<%# Bind("Start") %>' 
                        End='<%# Bind("End") %>' 
                        TimeZoneId='<%#Bind("TimeZoneId") %>' 
                        RecurrenceRuleText='<%# Bind("RecurrenceRule") %>'/> 
                </AdvancedEditTemplate>      

    When I run my app I get Object not set to an instance of an object and it breaks on this line <scheduler:AdvancedForm runat="server" ID="AdvancedEditForm1" Mode="Edit"

    When I return my appointments to the scheduler I make sure that the custom attribute time zone Id has a value for each appointment
                        appointment.Attributes.Add("TimeZoneId", schedule.TimeZoneId.ToString()); 
    Then return List<Appointment>


    What have I missed? I'll have to scan that doc again but I think I have everything.

  10. Peter
    Admin
    Peter avatar
    6637 posts

    Posted 07 Dec 2009 Link to this post

    Hello towps,

    I suspect the problem is related to using guid as type for the TimeZoneId property. Can you try using string instead and let us know how it goes.


    Cheers,
    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.
  11. Daniel Hodgin
    Daniel Hodgin avatar
    4 posts
    Member since:
    Mar 2010

    Posted 05 Apr 2010 Link to this post

    I had this problem with a property trying to use a Guid type as the return

    changing it to use strings fixed the problem

    I have a radcomboBox control rcbGroomer for my "Groomer" which is just an asp.net membership user + custom profile attributes
    trying to make the property return a Guid gave me the same error as above, changing to string fixed it

            [Bindable(BindableSupport.Yes, BindingDirection.TwoWay)]
            public string SelectedGroomer
            {
                get
                {
                    return rcbGroomers.SelectedValue;
                }

                set
                {
                    rcbGroomers.SelectedValue = value.ToString();
                }
            }
  12. rajesh
    rajesh avatar
    15 posts
    Member since:
    Nov 2010

    Posted 04 Dec 2010 Link to this post

    Hi sir,
    i inserted a radcombo box in advance form template ...when i try to bind it with datasource...it is saying  DataBinding: 'Telerik.Web.UI.Appointment' does not contain a property with the name 'LeaveTypeID'. cant we bind custom properties in advance form template to data source
    if we can than please provide a demo for that ...

    thank you 


     
  13. Peter
    Admin
    Peter avatar
    6637 posts

    Posted 09 Dec 2010 Link to this post

    Hi rajesh,

    Please, refer to the following kb articles:

    Related Load on Demand RadComboBoxes in the advanced form of RadScheduler

    Implement related RadComboBox controls in the advanced form

    I hope they help you get started.

    Regards,
    Peter
    the Telerik team
    Browse the vast support resources we have to jumpstart your development with RadControls for ASP.NET AJAX. See how to integrate our AJAX controls seamlessly in SharePoint 2007/2010 visiting our common SharePoint portal.
  14. Osvaldo
    Osvaldo avatar
    6 posts
    Member since:
    May 2015

    Posted 08 May 2015 Link to this post

    Please I need to create a custom Appointment class but I don't know how, I'm creating a scheduler with RadScheduler, the provider it's a DataBase I'm using a Web Service... I want to change and add properties in the Insert and Edit form and save it in the DataBase. I read some post from here and the documentation but I'm still knowless about what I want to do... I hope you can help me.

    Nota: Sorry about my english I'm a spanish speaker.

  15. Hristo Valyavicharski
    Admin
    Hristo Valyavicharski avatar
    975 posts

    Posted 13 May 2015 Link to this post

    Hi Osvaldo,

    I have replied here: http://www.telerik.com/forums/custom-appointment-web-service-binding-and-database-provider

    Regards,
    Hristo Valyavicharski
    Telerik
    Do you want to have your say when we set our development plans? Do you want to know when a feature you care about is added or when a bug fixed? Explore the Telerik Feedback Portal and vote to affect the priority of the items
Back to Top
UI for ASP.NET Ajax is Ready for VS 2017