protected void grdTicket_NeedDataSource(object source, GridNeedDataSourceEventArgs e){ DataSet ds = new DataSet(); DataTable dt = new DataTable(); dt.Columns.Add("UserId"); for (int i = 0; i < 15; i++) { DataRow dr = dt.NewRow(); dr["UserId"] = "XYZ" + i.ToString(); dt.Rows.Add(dr); } ds.Tables.Add(dt); grdTicket.DataSource = ds;}protected void grdTicket_PreRender(object sender, EventArgs e){ RadGrid grid = sender as RadGrid; if (grid.MasterTableView.Items.Count > 0) { if (grid.SelectedIndexes.Count == 0) { //grid.SelectedIndexes.Add(0); grid.MasterTableView.Items[0].Selected = true; // This just feels dirty!! // Why doesn't the event fire when I set the row's Selected property grdTicket_SelectedIndexChanged(sender, null); } }}protected void grdTicket_SelectedIndexChanged(object sender, EventArgs e){ RadGrid grid = sender as RadGrid; int index = Convert.ToInt32(grid.SelectedIndexes[0]); lblSelectedIndex.Text = "Selected index = " + index;}<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager><telerik:RadGrid ID="grdTicket" runat="server" AutoGenerateColumns="false" Width="946px" Font-Names="Verdana" Font-Size="x-small" EnableViewState="true" AllowSorting="true" AllowPaging="true" AllowMultiRowSelection="false" OnNeedDataSource="grdTicket_NeedDataSource" OnPreRender="grdTicket_PreRender" OnSelectedIndexChanged="grdTicket_SelectedIndexChanged"> <ClientSettings EnablePostBackOnRowClick="True"> <Selecting AllowRowSelect="True" /> </ClientSettings> <MasterTableView Width="100%" NoDetailRecordsText="No Records To Display"> <CommandItemSettings ExportToPdfText="Export to PDF"></CommandItemSettings> <RowIndicatorColumn FilterControlAltText="Filter RowIndicator column"> </RowIndicatorColumn> <ExpandCollapseColumn FilterControlAltText="Filter ExpandColumn column"> </ExpandCollapseColumn> <Columns> <telerik:GridBoundColumn HeaderText="User ID" DataField="UserId" UniqueName="UserID"> </telerik:GridBoundColumn> </Columns> <EditFormSettings> <EditColumn FilterControlAltText="Filter EditCommandColumn column"> </EditColumn> </EditFormSettings> </MasterTableView> <PagerStyle Mode="NextPrevNumericAndAdvanced" ShowPagerText="true" /> <FilterMenu EnableImageSprites="False"> </FilterMenu> <HeaderContextMenu CssClass="GridContextMenu GridContextMenu_Default"> </HeaderContextMenu></telerik:RadGrid><br /><asp:Label runat="server" ID="lblSelectedIndex" /><scheduler:AdvancedForm runat="server" ID="AdvancedEditForm1" Mode="Edit" Subject='<%# Bind("Subject") %>' Description='<%# Bind("Description") %>' Start='<%# Bind("Start") %>' End='<%# Bind("End") %>' RecurrenceRuleText='<%# Bind("RecurrenceRule") %>' Reminder='<%# Bind("Reminder") %>' AppointmentColor='<%# Bind("AppointmentColor") %>' UserID='<%# Bind("User") %>' RoomID='<%# Bind("Room") %>' />Private Sub BindSchedule() Dim ds As List(Of objCRM.Schedule) = objCRM.Schedule.SelectScheduleByUser(Session("User_id")) Scheduler.DataSource = ds Scheduler.DataBind()End Sub<rad:RadScheduler runat="server" ID="Scheduler" Width="753px" Height="600px" EnableExactTimeRendering="true" StartEditingInAdvancedForm="true" StartInsertingInAdvancedForm="true" DataKeyField="Schedule_id" DataStartField="Start" DataEndField="End" DataSubjectField="Subject" DataDescriptionField="Description" DataRecurrenceField="RecurrenceRule" DataReminderField="Reminder" DataRecurrenceParentKeyField="RecurrenceParentSchedule_id" AppointmentContextMenuSettings-EnableDefault="false" TimeSlotContextMenuSettings-EnableDefault="false" TimelineView-UserSelectable="false" > <AdvancedForm Modal="true" /> <Reminders Enabled="True" /></rad:RadScheduler>I have a user control that uses a custom control which has business logic to added controls dynamically. Example text boxes along with lable will be added based on the rule to capture addtional information from user.
If the user control is part of page and displayed using RadWindow then the I do not have any issues and on each post back between client and server dynamically added controls are getting displayed.
When the same user control is displayed inline using "User Control Edit Form" then for the first time dynamically added controls are getting displayed, but on the further post back they are not getting displayed.
In the custom control i am using CreateChildControls() to add controls dynamically.
What I've done is built a "SmartPart" application in SharePoint 2007 which I'm trying to convert to SharePoint 2010. If you're not familiar with SmartPart, it's essentially a wrapper webpart that lets you load .ascx controls from a designated folder on the SharePoint server.
I've used Telerik controls within a series of .ascx controls. In 2007 everything works fine. In SharePoint 2010 I'm experiencing a ScriptHandler.axd "object expected" error whenever I trigger a partial postback to change the mode on a DetailsView control from ReadOnly to Edit or Insert. Changing from Edit/Insert back to ReadOnly, or loading the page with the DetailsView already in Edit/Insert mode does not cause the error.
Webpage error details
User Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET4.0C; .NET4.0E)
Timestamp: Tue, 15 Feb 2011 18:25:21 UTC
Message: Object expected
Line: 5
Char: 32749
Code: 0
URI: http://myHost/ScriptResource.axd?d=5IJVuvjGYmphMWCAkLfCmwAPXrthSXiUWcsZ2-XJPFVyLeGXjv_VkQVwhs7Rbfagz910Hn9YGXyPmImRLglJdlDX3fR00mQLdqSAApxlnZ4LBCFPJ4ROQskZ8-rvBIOcVRyr6yuAXk__TG9yo6erRI62vE01&t=5c2f384e
The DetailsView control is using DynamicFields which are constructed from DynamicData FieldTemplates. In these field templates I'm using Telerik controls such as RadTextBox, RadTooltip, RadDateTimePicker, etc. Those controls are what cause the error after a partial postback. As I said, if I load the page in edit/insert mode to begin with, everything is fine. However if I load the page in ReadOnly mode, then trigger a partial postback which causes the DynamicFields to switch from ASP Labels into Telerik Controls the error happens. I want to reiterate that this worked fine in MOSS 2007.
I also found that the ScriptResource it's referring to is MicrosoftAJAX.js, but I'm not sure what it's expecting at Char 32749. Any ideas?