好吧,所以我對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