【问题标题】:RadFilter - How to Apply Expression programmaticallyRadFilter - 如何以编程方式应用表达式
【发布时间】:2017-10-11 06:40:16
【问题描述】:
我有一个响应 RadGrid 的 RadFilter。我已成功执行 RadFilter.SaveSettings 将 RadFilter 状态保存到数据库中,并 RadFilter.LoadSettings 将 RadFilter 加载回来。
但是,加载 RadFilter 后,我需要单击“应用”按钮来刷新我的 RadGrid 列表。请问有什么方法可以在 RadFilter.LoadSetting 之后自动触发 RadGrid 的过滤吗?
谢谢。
【问题讨论】:
标签:
asp.net
telerik
filtering
radgrid
【解决方案1】:
找不到任何有用的功能,我做了一个解决方法。在应用表达式事件中,始终将过滤器表达式存储在隐藏字段中。
protected void rftWarehouseItem_ApplyExpressions(object sender, RadFilterApplyExpressionsEventArgs e)
{
RadFilterSqlQueryProvider provider = new RadFilterSqlQueryProvider();
provider.ProcessGroup(e.ExpressionRoot);
hdfFilterExpression.Value = provider.Result;
rgdWarehouseItem.MasterTableView.FilterExpression = provider.Result;
rgdWarehouseItem.Rebind();
}
在保存到数据库期间,我会将 hdfFilterExpression.Value 存储在数据库中。当再次从数据库中检索记录时,只需重新绑定 gridview。
rgdWarehouseItem.MasterTableView.FilterExpression = record.FilterExpression;
rgdWarehouseItem.Rebind();
【解决方案2】:
只要做:
this.RadFilter1.FireApplyCommand();
附:将 RadFilter1 更改为您的对象名称。