This is a migrated thread and some comments may be shown as answers.

FilterTemplate is never showing

1 Answer 117 Views
Grid
This is a migrated thread and some comments may be shown as answers.
Zhuoyun
Top achievements
Rank 1
Zhuoyun asked on 06 Feb 2014, 07:53 PM
I have a RadGrid which contains several GridBoundColumn. But no matter what I put in the filter template, It's just not showing!! I wonder how the filter template is triggered? AllowFilteringByColumn is already set as true for the whoke grid.

Please help me~~

        <telerik:GridBoundColumn UniqueName="topper" HeaderText="Global Client Company-test filter" DataField="topper" HeaderStyle-Width="300px">
        
        
        <FilterTemplate>
                            <asp:DropDownList ID="cbbDiscontinued" AutoPostBack="true" runat="server">
                    <asp:ListItem Text="All" Value="-1"></asp:ListItem>
                    <asp:ListItem Text="Active" Value="1"></asp:ListItem>
                    <asp:ListItem Text="Lock" Value="0"></asp:ListItem>
                </asp:DropDownList>
        </FilterTemplate>

        </telerik:GridBoundColumn>

1 Answer, 1 is accepted

Sort by
0
Princy
Top achievements
Rank 2
answered on 07 Feb 2014, 06:13 AM
Hi Zhuoyun,

To enable filtering you have to enable AllowFilteringByColumn property to true. Make sure you have not disabled it anywhere. Here is a sample code snippet please try and let me know if it works for you. Provide your full code snippet if this doesn't help.

ASPX:
<telerik:RadGrid ID="RadGrid1" runat="server" AutoGenerateColumns="false" EnableLinqExpressions="false" OnNeedDataSource="RadGrid1_NeedDataSource" AllowFilteringByColumn="true">
    <MasterTableView>
        <Columns>
         <telerik:GridBoundColumn UniqueName="ID" DataField="ID" HeaderText="ID">
         </telerik:GridBoundColumn>
         <telerik:GridBoundColumn UniqueName="Name" DataField="Name" HeaderText="Name">
         </telerik:GridBoundColumn>
         <telerik:GridBoundColumn UniqueName="Number" HeaderText="Number" DataField="Number">
             <FilterTemplate>
               <asp:DropDownList ID="DropDownList" AutoPostBack="true" runat="server" OnSelectedIndexChanged="DropDownList_SelectedIndexChanged">
                   <asp:ListItem Text="Select"></asp:ListItem>
                   <asp:ListItem Text="Active" Value="1"></asp:ListItem>
                   <asp:ListItem Text="Lock" Value="0"></asp:ListItem>
               </asp:DropDownList>
            </FilterTemplate>
         </telerik:GridBoundColumn>
      </Columns>
    </MasterTableView>
</telerik:RadGrid>

C#:
protected void RadGrid1_NeedDataSource(object sender, GridNeedDataSourceEventArgs e)
{
    dynamic data = new[] {
new { ID = 1, Name = "Name1", Number=1},
new { ID = 2, Name = "Name2", Number=0},
new { ID = 3, Name = "Name3", Number=1},
new { ID = 4, Name = "Name4", Number=0},
new { ID = 5, Name = "Name5", Number=1},
new { ID = 6, Name = "Name6", Number=0},
new { ID = 7, Name = "Name7", Number=1},
new { ID = 8, Name = "Name8", Number=0},
new { ID = 9, Name = "Name9", Number=1}
};
    RadGrid1.DataSource = data;
}
protected void DropDownList_SelectedIndexChanged(object sender, EventArgs e)
{
    DropDownList drop = (DropDownList)sender;
    string filterExpression;
    filterExpression = "([Number] = '" + drop.SelectedValue + "')";       
    RadGrid1.MasterTableView.FilterExpression = filterExpression;      
    RadGrid1.MasterTableView.Rebind();
}

Thanks,
Princy
Tags
Grid
Asked by
Zhuoyun
Top achievements
Rank 1
Answers by
Princy
Top achievements
Rank 2
Share this question
or