Как использовать Telerik RadGrid FilterExpression для DataTable программно - PullRequest
2 голосов
/ 17 ноября 2011

У меня есть 2 страницы 1 с Telerik RadGrid, другая с Telerik RadChart, которые используют ту же таблицу данных. Когда я отфильтровал 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()))"

А теперь я не знаю, как использовать это FilterExpression для DataTable. Как можно использовать это FilterExpression для DataTable. И будет ли Linq быстрее синтаксиса MSSQL Server?

Ответы [ 2 ]

4 голосов
/ 18 ноября 2011

Проблема была в .NET Framework 3.5 SP1. Для использования Динамические выражения, которые я должен использовать using System.Linq; и using System.Linq.Dynamic; и чем я могу использовать Linq:

private void SetFiltring(ref DataTable table)
{
    table = table.AsEnumerable()
                 .AsQueryable()
                 .Where("it["Date"].ToString().ToUpper().Contains("21".ToUpper()))")
                 .CopyToDataTable();
}

и теперь это будет работать

0 голосов
/ 17 ноября 2011

Если вы хотите сделать это так же, как применяете фильтр выше, ознакомьтесь с этим сообщением в блоге:

http://blogs.msdn.com/b/aconrad/archive/2007/09/07/science-project.aspx

В нем он дает кодовую базу для использования выражения linq, а затем метод, чтобы превратить его в таблицу данных.

Тогда это вопрос присвоения источника данных вашей таблицы данным.

...