or

<telerik:radgrid id="_grdNotes" runat="server" cellspacing="-1" datasourceid="SqlDataSource1" showheader="False" gridlines="None" style="margin-bottom: 0px;"> <MasterTableView DataSourceID="SqlDataSource1" HierarchyLoadMode="Client" AutoGenerateColumns="False" DataKeyNames="SubNoteID" Name="Parent" GridLines="None"> <DetailTables > <telerik:GridTableView HierarchyLoadMode="Client" DataKeyNames="SubNoteID" DataSourceID="_srcSubNotes" Width="100%" runat="server" EnableHeaderContextMenu="false" Name="Child" AutoGenerateColumns="False" GridLines="None"> <ParentTableRelation> <telerik:GridRelationFields DetailKeyField="SubNoteID" MasterKeyField="SubNoteID"> </telerik:GridRelationFields> </ParentTableRelation> <Columns> <telerik:GridTemplateColumn DataField="Comments" FilterControlAltText="Filter Comments column" HeaderText="Comments" SortExpression="Comments" UniqueName="Comments"> <ItemTemplate> <b>(<asp:Label ID="CreatedOnLabel" runat="server" Text='<%# Eval("FormatedCreatedOn") %>' ></asp:Label> - <asp:Label ID="FullNameLabel" runat="server" Text='<%# Eval("FullName") %>'></asp:Label>) </b> <asp:Label ID="CommentsLabel" runat="server" Text='<%# Eval("Comments") %>'></asp:Label> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn UniqueName="UploadedFiles" FilterControlAltText="Filter UploadedFiles column" > <ItemTemplate> <asp:HiddenField ID="_hdnNoteID" runat="server" Value='<%# DataBinder.Eval(Container.DataItem, "NoteID")%>' /> <ul> <asp:Repeater ID="_rptNoteFiles" runat="server"> <ItemTemplate> <li><asp:HyperLink runat="server" ID="_hlNoteFile" NavigateUrl='<%# "~/NoteFiles/" & DataBinder.Eval(Container.DataItem, "FileLoc")%>' Text='<%# DataBinder.Eval(Container.DataItem,"FileDesc") %>'></asp:HyperLink></li> </ItemTemplate> </asp:Repeater> </ul> </ItemTemplate> </telerik:GridTemplateColumn> </Columns> </telerik:GridTableView> </DetailTables> <Columns> <telerik:GridTemplateColumn DataField="CorrectFollowUpDate" FilterControlAltText="Filter CorrectFollowUpDate column" HeaderText="CorrectFollowUpDate" SortExpression="CorrectFollowUpDate" UniqueName="CorrectFollowUpDate"> <ItemTemplate> <b>Follow-up Date: </b> <asp:Label ID="CorrectFollowUpDateLabel" runat="server" Text='<%# Eval("CorrectFollowUpDate") %>'></asp:Label> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn FilterControlAltText="Filter Status column" HeaderText="Status" SortExpression="Status" UniqueName="Status"> <ItemTemplate> <asp:HiddenField ID="_hdnCompleted" Value='<%# Eval("Completed") %>' runat="server" /> <asp:HiddenField ID="_hdnIncomplete" Value='<%# Eval("Incomplete") %>' runat="server" /> <b>Status: <asp:Label ID="StatusLabel" runat="server"></asp:Label></b> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn FilterControlAltText="Filter Add column" UniqueName="AddComplete" HeaderText="" SortExpression="AddComplete"> <ItemTemplate> <asp:HiddenField ID="_hdnNoteIDAdd" runat="server" Value='<%# DataBinder.Eval(Container.DataItem, "NoteID")%>' /> <a onclick='<%# "AddCompleteNote(" & Eval("NoteID") & ");"%>' href="javascript:void(0);">Add/Complete Note</a> </ItemTemplate> </telerik:GridTemplateColumn> </Columns> </MasterTableView> </telerik:radgrid> </div></div><asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString='<%$ ConnectionStrings:FMS_Conn %>' SelectCommand="sp_getFMSNotes" SelectCommandType="StoredProcedure"> <SelectParameters> <asp:SessionParameter SessionField="charter_num" Name="charter_num" Type="Int32"></asp:SessionParameter> <asp:QueryStringParameter QueryStringField="Section" Name="Section" Type="String"></asp:QueryStringParameter> </SelectParameters></asp:SqlDataSource> <asp:SqlDataSource ID="_srcNoteFiles" runat="server" ConnectionString='<%$ ConnectionStrings:FMS_Conn %>' SelectCommand="sp_getFMSNoteFiles" SelectCommandType="StoredProcedure"> <SelectParameters> <asp:Parameter Name="NoteID" Type="Int32" ></asp:Parameter> </SelectParameters></asp:SqlDataSource> <asp:SqlDataSource ID="_srcSubNotes" runat="server" ConnectionString='<%$ ConnectionStrings:FMS_Conn %>' SelectCommand="sp_getFMSSubNotes" SelectCommandType="StoredProcedure"> <SelectParameters> <asp:ControlParameter ControlID="_grdNotes" Name="SubNoteID" PropertyName="DataMember" Type="Int32" /> </SelectParameters></asp:SqlDataSource>Private Sub Page_PreRender(sender As Object, e As EventArgs) Handles Me.PreRender _dateFollowUpAdd.MinDate = DateTime.Today.Date.AddDays(1) If Request("Section") = "FMS-Board" And clscommon.RecursiveFindControl(Page, "_hdnBoardRptID") IsNot Nothing Then oConn.Open() Dim ocmd As New SqlCommand("sp_seBoardRptFMSNotes", oConn) ocmd.CommandType = CommandType.StoredProcedure With ocmd.Parameters Dim hdnBoardRptID As HiddenField = CType((clscommon.RecursiveFindControl(Page, "_hdnBoardRptID")), HiddenField) .Add(New SqlParameter("@BoardRptID", hdnBoardRptID.Value)) End With _grdNotes.DataSourceID = Nothing _grdNotes.DataSource = ocmd.ExecuteReader _grdNotes.DataBind() '_srcSubNotes.DataBind() '_grdNotes.MasterTableView.DetailTables(0).DataSourceID = "_srcSubNotes" '_grdNotes.MasterTableView.DetailTables(0).Rebind() oConn.Close() End If End Sub

protected override void OnPreRender(System.EventArgs e){ // ... Control setup unrelated to RadGrid1 // Test filtering bool Filter = true; if (Filter) { RadGrid1.AllowFilteringByColumn = Filter; RadGrid1.MasterTableView.AllowFilteringByColumn = Filter; }}
// I've also got handlers for these, but they don't setup filtering:
RadGrid1.PreRender += RadGrid1_PreRender;
RadGrid1.ItemCreated += RadGrid1_ItemCreated;
RadGrid1.ItemDataBound += RadGrid1_ItemDataBound;
RadGrid1.NeedDataSource += RadGrid1_NeedDataSource;
RadGrid1.GroupsChanging += RadGrid1_GroupsChanging;
<telerik:RadGrid EnableViewState="true" ID="RadGrid1" runat="server" AllowSorting="True" AllowPaging="True" GridLines="None" PageSize="25" AutoGenerateColumns = "false" OnExcelMLWorkBookCreated="RadGrid1_ExcelMLWorkBookCreated" OnItemCreated="RadGrid1_ItemCreated" OnHTMLExporting="RadGrid1_HtmlExporting" AllowMultiRowSelection="True" ShowFooter="true" ShowGroupPanel="True" EnableHeaderContextMenu="true" Skin="Xledger" EnableEmbeddedSkins="false" style="z-index: 0;"> <PagerStyle AlwaysVisible="true" /> <ExportSettings IgnorePaging="true" OpenInNewWindow="true"> <Pdf PageHeight="210mm" PageWidth="297mm" DefaultFontFamily="Arial Unicode MS" PageTopMargin="45mm" BorderStyle="Medium" BorderColor="#666666"></Pdf> </ExportSettings> <ClientSettings AllowColumnsReorder="true" ReorderColumnsOnClient="true" ColumnsReorderMethod="Reorder" AllowDragToGroup="true"> <Resizing AllowRowResize="True" EnableRealTimeResize="True" ResizeGridOnColumnResize="True" AllowColumnResize="True" AllowResizeToFit="true"></Resizing> <Selecting AllowRowSelect="true" /> <Scrolling AllowScroll="false"/><%--<Scrolling AllowScroll="True" UseStaticHeaders="True" SaveScrollPosition="true" FrozenColumnsCount="2"></Scrolling> --%> </ClientSettings> <GroupingSettings ShowUnGroupButton="true" RetainGroupFootersVisibility="true"></GroupingSettings> <MasterTableView ShowGroupFooter="true" TableLayout="Auto" Width="100%" AllowMultiColumnSorting="true" AllowGroupCollapse="true" GroupLoadMode="Client" EnableGroupsExpandAll="true"> <%-- AUTOGROUP BY ACCOUNT GROUP <GroupByExpressions> <telerik:GridGroupByExpression> <SelectFields> <telerik:GridGroupByField FieldName="t_rv_account_group" /> </SelectFields> <GroupByFields> <telerik:GridGroupByField FieldName="t_rv_account_group" /> </GroupByFields> </telerik:GridGroupByExpression> </GroupByExpressions> --%> <Columns> <telerik:GridBoundColumn UniqueName="trvAccountGroup" DataField="t_rv_account_group" DataType="System.String" HeaderText="trvAccountGroup" AutoPostBackOnFilter="true" CurrentFilterFunction="Contains"></telerik:GridBoundColumn> <telerik:GridBoundColumn UniqueName="trvSysAccount" DataField="t_rv_sys_account" DataType="System.String" HeaderText="trvSysAccount"></telerik:GridBoundColumn><%-- ... more columns ... --%> </Columns> </MasterTableView> </telerik:RadGrid>