or
<telerik:RadGrid ID="RadGrid1" runat="server" OnColumnCreated="RadGrid1_ColumnCreated" Skin="Office2007" Width="600px" OnItemCreated="RadGrid1_ItemCreated" OnItemDataBound="RadGrid1_ItemDataBound" AutoGenerateColumns="false" OnNeedDataSource="RadGrid1_NeedDataSource"> <MasterTableView HierarchyDefaultExpanded="true" HierarchyLoadMode="Client" AllowSorting="true" DataKeyNames="mnid, mnparent,mnnamein"> <SelfHierarchySettings ParentKeyName="mnparent" KeyName="mnid" /> <Columns> <telerik:GridBoundColumn DataField="mnnamein" HeaderText="Menu"UniqueName="mnnamein" HeaderStyle-Width="350px"></telerik:GridBoundColumn> <telerik:GridTemplateColumn UniqueName="CheckBoxTemplateColumn" HeaderText="Open"> <ItemTemplate> <asp:CheckBox id="CheckBox1" runat="server"></asp:CheckBox> </ItemTemplate> </telerik:GridTemplateColumn> </Columns> </MasterTableView> <ClientSettings AllowExpandCollapse="true" /></telerik:RadGrid><telerik:RadGrid ID="RadGrid1" runat="server"OnNeedDataSource="RadGrid1_NeedDataSource" OnPreRender="RadGrid1_PreRender"AllowSorting="True"> <MasterTableView HierarchyLoadMode="ServerBind" AllowSorting="true" DataKeyNames="Unique_Id, Parent_Id"> <SelfHierarchySettings ParentKeyName="Parent_Id" KeyName="Unique_Id" /> </MasterTableView> <ClientSettings AllowExpandCollapse="true"> <Selecting AllowRowSelect="True"></Selecting> </ClientSettings></telerik:RadGrid>
Then, in the code-behind, using OnNeedDataSource event:protected void RadGrid1_NeedDataSource(object source, GridNeedDataSourceEventArgs e){ RadGrid1.DataSource = GetDataTable(); //fetches data, returns DataTable}protected void RadGrid1_PreRender(object sender, EventArgs e){ HideOrShowExpandColumnRecursive(RadGrid1.MasterTableView);}protected void HideOrShowExpandColumnRecursive(GridTableView tableView){ GridItem[] nestedViewItems = tableView.GetItems(GridItemType.NestedView); foreach (GridNestedViewItem nestedViewItem in nestedViewItems) { foreach (GridTableView nestedView in nestedViewItem.NestedTableViews) { if (nestedView.Items.Count == 0) { TableCell cell = nestedView.ParentItem["ExpandColumn"]; cell.Controls[0].Visible = false; nestedViewItem.Visible = false; } if (nestedView.HasDetailTables) { HideOrShowExpandColumnRecursive(nestedView); } } }}<telerik:RadMaskedTextBox ID="txtPhone" runat="server" Mask="(###)###-####" Text='<%# DataBinder.Eval( Container, "DataItem.Phone" ) %>' TabIndex="6" EmptyMessage="-- Enter Phone Number --" HideOnBlur="true" ZeroPadNumericRanges="true" DisplayMask="(###)###-####"> </telerik:RadMaskedTextBox>