Hello,
I have a grid with for each item a detail table. The data for this grid are filled out using NeedDataSource and DetailTableDataBind events.
I also have a time which is in charge of rebinding the grid every 5 seconds.
My problem comes when I have expanded an item of the grid, in order to see its detail table, and the timer ticks. Then the item is automatically collapsed...
How can I avoid this automatic collapsing.
My Telerik version is v2008.1.619.35.
Here are sample codes :
Code behind :
Thanks in advance.
I have a grid with for each item a detail table. The data for this grid are filled out using NeedDataSource and DetailTableDataBind events.
I also have a time which is in charge of rebinding the grid every 5 seconds.
My problem comes when I have expanded an item of the grid, in order to see its detail table, and the timer ticks. Then the item is automatically collapsed...
How can I avoid this automatic collapsing.
My Telerik version is v2008.1.619.35.
Here are sample codes :
| <telerik:RadStyleSheetManager runat="server"> |
| </telerik:RadStyleSheetManager> |
| <telerik:RadScriptManager ID="RadScriptManager1" runat="server"> |
| </telerik:RadScriptManager> |
| <telerik:RadAjaxManager ID="RadAjaxManager1" runat="server"> |
| <ajaxsettings> |
| <telerik:AjaxSetting AjaxControlID="Timer1"> |
| <UpdatedControls> |
| <telerik:AjaxUpdatedControl ControlID="RadGrid1" /> |
| </UpdatedControls> |
| </telerik:AjaxSetting> |
| <telerik:AjaxSetting AjaxControlID="RadGrid1"> |
| <UpdatedControls> |
| <telerik:AjaxUpdatedControl ControlID="RadGrid1" /> |
| </UpdatedControls> |
| </telerik:AjaxSetting> |
| </ajaxsettings> |
| </telerik:RadAjaxManager> |
| <asp:Timer ID="Timer1" runat="server" Interval="5000" OnTick="Timer1_Tick"></asp:Timer> |
| <telerik:RadGrid ID="RadGrid1" runat="server" GridLines="None" OnNeedDataSource="RadGrid1_NeedDataSource" |
| OnDetailTableDataBind="RadGrid1_DetailTableDataBind" Skin="Inox" AutoGenerateColumns="False"> |
| <mastertableview datakeynames="moduleId"> |
| <DetailTables> |
| <telerik:GridTableView DataKeyNames="childModuleId" Name="Dependencies" Width="80%" runat="server"> |
| <Columns> |
| <telerik:GridBoundColumn HeaderText="id" DataField="childModuleId" UniqueName="childModuleId" Visible="false"> |
| </telerik:GridBoundColumn> |
| <telerik:GridTemplateColumn HeaderText="Dependencies" UniqueName="childModuleSelected" |
| ItemStyle-Width="10"> |
| <ItemTemplate> |
| <asp:CheckBox ID="childActivatedCheckBox" Checked='<%# Convert.ToBoolean(Eval("childModuleSelected")) %>' |
| runat="server" AutoPostBack="True" /> |
| </ItemTemplate> |
| <ItemStyle Width="10px"></ItemStyle> |
| </telerik:GridTemplateColumn> |
| <telerik:GridBoundColumn DataField="childModuleName" ItemStyle-Width="150" UniqueName="childModuleName"> |
| <ItemStyle Width="150px"></ItemStyle> |
| </telerik:GridBoundColumn> |
| </Columns> |
| </telerik:GridTableView> |
| </DetailTables> |
| <Columns> |
| <telerik:GridBoundColumn HeaderText="Id" DataField="moduleId" UniqueName="moduleId"> |
| </telerik:GridBoundColumn> |
| <telerik:GridTemplateColumn HeaderText="Selected" UniqueName="moduleSelected" ItemStyle-Width="10"> |
| <ItemTemplate> |
| <asp:CheckBox ID="activatedCheckBox" Checked='<%# Convert.ToBoolean(Eval("moduleSelected")) %>' |
| runat="server" AutoPostBack="True" /> |
| </ItemTemplate> |
| <ItemStyle Width="10px"></ItemStyle> |
| </telerik:GridTemplateColumn> |
| <telerik:GridBoundColumn HeaderText="Module Name" ItemStyle-Width="250" DataField="moduleName"> |
| <ItemStyle Width="250px"></ItemStyle> |
| </telerik:GridBoundColumn> |
| </Columns> |
| </mastertableview> |
| </telerik:RadGrid> |
Code behind :
| protected void RadGrid1_NeedDataSource(object source, Telerik.Web.UI.GridNeedDataSourceEventArgs e) |
| { |
| if (!e.IsFromDetailTable) |
| { |
| DataTable modulesTable = new DataTable(); |
| modulesTable.Columns.Add("moduleSelected", typeof( bool )); |
| modulesTable.Columns.Add("moduleId", typeof( int )); |
| modulesTable.Columns.Add("moduleName", typeof( string )); |
| Random r = new Random(123456); |
| for( int i = 0; i < 10; i++ ) |
| { |
| int nId = r.Next(0, 10); |
| // USE IsPostBack properties to see if the grid is correctly rebinded |
| modulesTable.Rows.Add(IsPostBack, nId, "Module " + nId); |
| } |
| RadGrid1.DataSource = modulesTable; |
| } |
| } |
| protected void RadGrid1_DetailTableDataBind(object source, Telerik.Web.UI.GridDetailTableDataBindEventArgs e) |
| { |
| GridDataItem parentDataItem = (GridDataItem)e.DetailTableView.ParentItem; |
| int nParentModuleId = (int)parentDataItem.GetDataKeyValue("moduleId"); |
| DataTable dependenciesTable = new DataTable(); |
| dependenciesTable.Columns.Add("childModuleSelected", typeof(bool)); |
| dependenciesTable.Columns.Add("childModuleId", typeof(int)); |
| dependenciesTable.Columns.Add("childModuleName", typeof(string)); |
| Random r = new Random(123456); |
| for (int i = 0; i < 3; i++) |
| { |
| int nId = r.Next(0, 10); |
| dependenciesTable.Rows.Add(false, nId, "Module " + nId); |
| } |
| e.DetailTableView.DataSource = dependenciesTable; |
| } |
| protected void Timer1_Tick(object sender, EventArgs e) |
| { |
| RadGrid1.Rebind(); |
| } |
Thanks in advance.