这是我的telerik RadGrid代码
<telerik:RadGrid ID="grdMain" runat="server" AllowPaging="True"
AutoGenerateColumns="False" CellSpacing="0" EnableLinqExpressions="False"
GridLines="None" PageSize="15" AllowSorting="true"
OnNeedDataSource="grdMain_NeedDataSource"
>
我有一个文本框txtSearch
和一个用于搜索和过滤grdMain
网格的按钮。
<telerik:RadButton ID="RadButton1" runat="server" Text="Search"
OnClick="search_Click" >
</telerik:RadButton>
这是我的点击事件
protected void search_Click(object sender, EventArgs e)
{
grdMain.MasterTableView.FilterExpression = "([ColumnOne] = '" + txtSearch.Text + "')";
grdAirLine.Rebind();
}
但在我的网格中过滤不起作用。我在这里缺少什么?
答案 0 :(得分:0)
要在后面的代码中应用过滤器,您需要3件事情:
3 *:有时只有2。
设置过滤器过滤器表达式
grdMain.MasterTableView.FilterExpression = "([ColumnOne] = '" + txtSearch.Text + "')";
这是网格将过滤的表达式。
设置列电流过滤器
这是仅用于列标题中的过滤器显示。这仅适用于 display 和 future filter 。但是必须设置此选项,否则网格将忽略任何过滤器表达式。
GridColumn column = RAD_Grid.MasterTableView.GetColumnSafe("ColumnOne");
column.CurrentFilterFunction = GridKnownFunction.EqualTo;
column.CurrentFilterValue = txtSearch.Text;
只有在
RadGrid
或MasterTableView
上设置了AllowFilteringByColumn时才需要。
重新绑定更新过滤器的网格。如果您正在使用嵌套网格重新绑定父网格,或者有时需要每个父网格。
重新绑定正确的网格后,问题代码应该正常工作。
答案 1 :(得分:-1)
你必须添加ajax管理器和加载面板,这就是RadGrid过滤结果的方式。
例如:
<telerik:RadAjaxManagerProxy ID="RadAjaxManagerProxy" runat="server">
<AjaxSettings>
<telerik:AjaxSetting AjaxControlID="grdMain">
<UpdatedControls>
<telerik:AjaxUpdatedControl ControlID="grdMain" LoadingPanelID="RadAjaxLoadingPanelGrid" />
</UpdatedControls>
</telerik:AjaxSetting>
</AjaxSettings>
</telerik:RadAjaxManagerProxy>
<telerik:RadAjaxLoadingPanel ID="RadAjaxLoadingPanelGrid" runat="server" Height="75px"
Skin="Office2007" Width="75px">
</telerik:RadAjaxLoadingPanel>
答案 2 :(得分:-2)
我认为你应该关注telerik论坛。这是类似的问题。 http://www.telerik.com/community/forums/aspnet-ajax/grid/radgrid-with-filtering-not-working.aspx