好吧,所以我对DevExpress有点新,我跳入现有项目的中间,该项目大量使用绑定到LinqDataSource
的DevExpress网格并利用网格内置过滤。以下是我正在查看的内容的快速概览:基于EF4部分属性值过滤器DevExpress网格
- 网格绑定到名为“Review”的EF4实体集合。
- 我已通过包含名为“IsCurrent”属性的分部类扩展Review实体。 IsCurrent包含一些返回布尔值的逻辑。
- 网格的初始数据源包含当前用户可能看到的所有评论。
- 我们利用DevExpress的内置功能来保存网格布局。使用过滤器构建器,我们可以过滤Review实体的本地属性(即生成的实体模型中存在的属性)。因此,如果“名称”是Review实体的成员,则在
[Name]='Test'
上进行筛选就可以正常工作。
我真的想要做的是过滤也是基于我在部分类“IsCurrent”中创建的属性。但是,当我修改保存在数据库中的过滤器字符串并将[IsCurrent]=true
添加到过滤器字符串时,我会得到一个完全空的结果集。我尝试将它切换为false,并且它仍然是空的。
可以过滤属于部分类成员的属性而不是生成的实体模型?如果没有,是否有一个公认的解决方法?
下面是示出了一些重要的部分的(尽管是极为简单的)一些示例代码:
protected void LinqServerModeDataSource1_OnSelecting(object sender,
LinqServerModeDataSourceSelectEventArgs e)
{
e.QueryableSource = GetAllRecords();
}
Review.cs部分:
public partial class Review
{
public bool IsCurrent
{
if (something)
return true;
else
return false;
}
}
的DevExpress过滤字符串:
filter [IsCurrent] = true
如果我将过滤器更改为:filter [Name ='Test'],它工作得很好,并显示所有记录的名称为test。恢复为[IsCurrent] = true只显示一个空集。我确信结果集包含应显示的有效数据。
任何想法?如果我尝试对部分类中创建的值进行过滤,但似乎不起作用,但它适用于从生成的实体模型中获取的值。
你使用XtraGrid吗? – mservidio
ASPxGridView - 这是一个ASP.NET Web窗体应用程序。 – Scott