在这种情况下,实际过滤绝对没有问题,但是,存在一个外观错误,其中表达式不会从文本框中删除。
在RadGrid中有一个。主表和明细表都启用了筛选,并且工作正常。当我尝试在 DetailTable 级别(使用"nofilter")菜单选项删除过滤器表达式时,过滤器表达式仍保留在文本框中。如何删除它?如果筛选请求发生在主表或详细信息表,我可以写入什么代码到标识?最后,我只想让过滤器文本框中的文本消失。
示例代码:
<telerik:RadGrid ID="SomeGridView" runat="server">
<ClientSettings>
<ClientEvents OnFilterMenuShowing="FilterMenuShowing" />
</ClientSettings>
<Columns>
</Columns>
<DetailTables>
<telerik:GridTableView Name="Details">
<Columns>
<telerik:GridBoundColumn DataField="FieldName" HeaderText="Some Header" SortExpression="FieldName" UniqueName="FieldName" />
</Columns>
</telerik:GridTableView>
</DetailTables>
</telerik:RadGrid>
我想我解决了自己的问题。但我发现MasterTableView过滤器不需要这种额外的努力,因为当我选择"NoFilter"时,它会自动清除文本框值。这是一个已知的 Telerik 错误吗?您可以在此处关注门票:
http://www.telerik.com/forums/clear-filter-expresssion-text-box-in-radgrid#me_BRg3iXUOgDucx47Wigg
protected void RadGridView_DetailTableDataBind(object sender, GridDetailTableDataBindEventArgs e)
{
GridDataItem dataItem = e.DetailTableView.ParentItem;
if (IsPostBack == true)
{
foreach (GridColumn thisColumn in e.DetailTableView.Columns)
{
if (thisColumn.CurrentFilterFunction == GridKnownFunction.NoFilter)
{
thisColumn.CurrentFilterValue = string.Empty;
}
}
}
}