or
// build the grids MasterTableView in OnInit (this sits in a SharePoint 2010 webpart) _radGridViewSearch = new Telerik.Web.UI.RadGrid(); // advanced data filtering _radGridViewSearch.NeedDataSource += new GridNeedDataSourceEventHandler(radGridViewSearch_NeedDataSource); _radGridViewSearch.Skin = "Sunset"; _radGridViewSearch.AutoGenerateColumns = false; _radGridViewSearch.AllowPaging = true; _radGridViewSearch.AllowSorting = true; _radGridViewSearch.PagerStyle.Mode = GridPagerMode.Slider; _radGridViewSearch.PageSize = 25; _radGridViewSearch.AllowFilteringByColumn = true; // per telerik: Depending on the data source, the filtering may be case-sensitive or case-insensitive. You can control this behavior using the GroupingSettings-CaseSensitive property _radGridViewSearch.GroupingSettings.CaseSensitive = false; // per telerik: In some .NET 3.5 scenarios you should also turn off the Linq expressions - EnableLinqExpressions="false" _radGridViewSearch.EnableLinqExpressions = false; _radGridViewSearch.MasterTableView.TableLayout = GridTableLayout.Auto;// build the detail tableview - if the report needs one if (_genReport.HasDetailsView) { // use 'ServerBind' so that the DetailTableDataBind event fires immediately after the corresponding parent item is bound // Assign the DetailTableDataBind event handler to the grids nested matters _radGridViewSearch.DetailTableDataBind += new GridDetailTableDataBindEventHandler(_radGridViewSearch_DetailTableDataBind); _radGridViewSearch.MasterTableView.HierarchyLoadMode = GridChildLoadMode.ServerBind; _detailsView = new GridTableView(); _detailsView.HierarchyLoadMode = GridChildLoadMode.ServerBind; _detailsView.AllowPaging = false; _detailsView.AllowSorting = false; _detailsView.AllowFilteringByColumn = false; _detailsView.Width = Unit.Percentage(95); _detailsView.HorizontalAlign = System.Web.UI.WebControls.HorizontalAlign.Right; _radGridViewSearch.MasterTableView.DetailTables.Add(_detailsView); }void _radGridViewSearch_DetailTableDataBind(object sender, GridDetailTableDataBindEventArgs e) { try { // grab the 'parent item' GridDataItem targetParentItem = (GridDataItem)e.DetailTableView.ParentItem; int targetParentMatterID = 0; string targetChildMatter = "0"; _lionRepository = new LionBCSRepository(); // first, prep the parent matter ID and make sure we have something that we can work with if (!string.IsNullOrEmpty(Convert.ToString(targetParentItem["MatterID"].Text)) && (int.TryParse(targetParentItem["MatterID"].Text, out targetParentMatterID))) { // next, prep the related matter ID and make sure we have something that we can work with if (!string.IsNullOrEmpty(Convert.ToString(targetParentItem["RelatedMatter"].Text)) && !string.Equals(" ", Convert.ToString(targetParentItem["RelatedMatter"].Text), StringComparison.OrdinalIgnoreCase)) { // once we're here we know that we have something to work with for both the parent and child matters targetChildMatter = targetParentItem["RelatedMatter"].Text; // setup the datasource e.DetailTableView.DataSource = _lionRepository.GetRelatedMatters(targetChildMatter, targetParentMatterID); } else { e.DetailTableView.DataSource = _lionRepository.GetRelatedMatters(targetChildMatter, targetParentMatterID); } } else { e.DetailTableView.DataSource = _lionRepository.GetRelatedMatters(targetChildMatter, targetParentMatterID); } } catch (Exception ex) { LionExceptionLogging.LogException("WebParts", string.Format("LION SS exception at _radGridViewSearch_DetailTableDataBind: {0} Details: {1}", ex.Message, ex.InnerException)); this._LitError.Visible = true; this._LitError.Text += ex.Message; } }<telerik:GridTemplateColumn DataField="ResWidth" DataType="System.Int32" FilterControlAltText="Filter ResWidth column" HeaderText="Width" UniqueName="ResWidth"> <EditItemTemplate> <telerik:RadNumericTextBox ID="ResWidthRadNumericTextBox" runat="server" MaxValue="100000" MinValue="0" Type="Number" Value="0" Width="30px"> <NumberFormat DecimalDigits="0" ZeroPattern="n" /> </telerik:RadNumericTextBox> </EditItemTemplate> <ItemTemplate> <asp:Label ID="ResWidthLabel" runat="server" Text='<%# Eval("ResWidth") %>'></asp:Label> </ItemTemplate></telerik:GridTemplateColumn><telerik:GridTemplateColumn DataField="ResHeight" DataType="System.Int32" FilterControlAltText="Filter ResHeight column" HeaderText="Height" UniqueName="ResHeight"> <EditItemTemplate> <telerik:RadNumericTextBox ID="ResHeightRadNumericTextBox" runat="server" MaxValue="100000" MinValue="0" Type="Number" Value="0" Width="30px"> <NumberFormat DecimalDigits="0" ZeroPattern="n" /> </telerik:RadNumericTextBox> </EditItemTemplate> <ItemTemplate> <asp:Label ID="ResHeightLabel" runat="server" Text='<%# Eval("ResHeight") %>'></asp:Label> </ItemTemplate></telerik:GridTemplateColumn>this._displayElement.style.borderRightWidth=parseInt($telerik.getComputedStyle(this._displayElement,"border-right-width",""))+parseInt($telerik.getComputedStyle(this._textBoxElement,"border-right-width",""))+"px";