我有2页1与Telerik RadGrid另一个与Telerik RadChart thay使用相同的DataTable . 当我在页面上过滤RadGrid时,我想按下按钮并让RadChart更新以使用相同的过滤DataTable .
首先,这是我已经尝试过的 .
关闭LINQ表达式( EnableLinqExpressions="false"
),我可以设置RadGrid过滤器表达式(例如),如下所示:
Grid.MasterTableView.FilterExpression = "([Date] LIKE '%21%')"
现在我可以使用:
private void SetFiltring(ref DataTable table)
{
table = table.Select("([Date] LIKE '%21%')", "").CopyToDataTable();
}
它的工作很棒 .
现在,如果我想使用LINQ表达式( EnableLinqExpressions="true"
),我可以设置RadGrid过滤器表达式(例如),如下所示:
Grid.MasterTableView.FilterExpression = "it["Date"].ToString().ToUpper().Contains("21".ToUpper()))"
现在我不知道如何在DataTable上使用这个FilterExpression . 如何在DataTable上使用此FilterExpression.And Linq会比MSSQL Server语法更快吗?
2 回答
problam在.NET Framework 3.5 SP1中 . 对于使用动态表达式,我必须使用
using System.Linq;
和using System.Linq.Dynamic;
,而且我可以使用Linq:现在它会起作用
如果您想以与上述过滤器相同的方式执行此操作,请查看此博文:
http://blogs.msdn.com/b/aconrad/archive/2007/09/07/science-project.aspx
在其中,他提供了一个代码库来使用linq表达式,然后使用一种方法将其转换为数据表 .
然后是将网格的数据源分配给数据表 .