Хорошо, так что я немного новичок в DevExpress и прыгаю в середину существующего проекта, который интенсивно использует сетку DevExpress, привязанную к LinqDataSource
, и использует встроенную фильтрацию сеток.Вот краткий обзор того, на что я смотрю:
- Сетка привязана к коллекции сущностей EF4, называемой «Просмотр».
- Я расширил сущность Просмотр черезчастичный класс, который содержит свойство с именем «IsCurrent».IsCurrent содержит некоторую логику, которая возвращает логическое значение.
- Исходный источник данных для Grid содержит ВСЕ обзоры, которые может видеть текущий пользователь.
- Мы использовали встроенную в DevExpress способность сохранять макеты сетки.,Используя построитель фильтров, мы можем фильтровать собственные свойства объекта Review (то есть свойства, которые существуют в модели созданного объекта).Так что, если «Имя» является членом сущности «Просмотр», фильтрация по
[Name]='Test'
работает просто отлично.
Что я действительно хочу сделать, так это фильтрация, также основанная на свойстве, которое я создал в частичном классе"IsCurrent".Однако, когда я изменяю строку фильтра, которая сохраняется в нашей базе данных, и добавляю [IsCurrent]=true
в строку фильтра, я получаю полностью пустой набор результатов.Я попытался переключить его на false, и он все еще пуст.
Можно ли отфильтровать свойство, являющееся членом частичного класса, а не сгенерированной модели сущностей?Если нет, есть ли приемлемый обходной путь?
Вот пример кода, который иллюстрирует некоторые важные части (хотя и чрезвычайно упрощенные):
protected void LinqServerModeDataSource1_OnSelecting(object sender,
LinqServerModeDataSourceSelectEventArgs e)
{
e.QueryableSource = GetAllRecords();
}
Review.cs part:
public partial class Review
{
public bool IsCurrent
{
if (something)
return true;
else
return false;
}
}
Строка фильтра DevExpress:
filter [IsCurrent] = true
Если я изменю фильтр на: filter [Name =«Тест»], все работает отлично и показывает мне все записи с именем теста.Возвращение к [IsCurrent] = true просто показывает пустой набор.Я точно знаю, что набор результатов содержит действительные данные, которые должны отображаться.
Есть идеи?Кажется, что это не работает, если я пытаюсь фильтровать значения, созданные в частичном классе, но работает для значений, полученных из сгенерированной модели сущностей.