2009-04-08 68 views
3

使用ASP.NET動態數據與LINQ到Northwind數據庫SQL的DataContext ...ASP.NET動態數據DisplayColumn屬性曹景偉排序問題

當我添加一個DisplayColumn屬性到我的LINQ的一個到SQL entity類,並從部分類中的自定義代碼中引用屬性,我失去了按生成的GridViews中的該列進行排序的功能。即使我引用非定製屬性作爲sortColumn,我仍然失去排序能力。

這是怎麼發生的?

例如代碼:

[DisplayColumn("LastNameFirstName", "LastName", false)] 
public partial class Employee 
{ 
    public string LastNameFirstName 
    { 
     get { return LastName + ", " + FirstName; } 
    } 
} 

亞倫

編輯:sortColumn指定將被使用時,它被用作一個外鍵(在的DropDownList)到這個實體排序的列,而不是當它在GridView中排序時。

回答

2

這可能是由設計...

的 「sortColumn」 指定列將用於將此實體作爲外鍵進行排序(在DropDownList中),而不是在GridView中進行排序時使用。

2

這是正確的,因爲該屬性不在數據庫中,並且SQL將嘗試爲數據庫構造一個T-SQL隊列以獲取您的實體。但會失敗,因爲這些名稱沒有列。

+0

但第二個參數「LastName」將在數據庫中。如果我在那裏指定它,我認爲它應該試圖按此排序。無論哪種方式,它可以通過自定義屬性後,它創建域對象... – 2009-04-10 17:04:59

+1

是的,但提交的LastNameFirstName是不是在數據庫和Linq不知道里面LastNameFirstName :) – Wizzard 2009-04-15 12:38:10

0

您可以嘗試重寫可能有效的ToString()方法,但它只會過濾由FK關係引用的實體。

0

嘗試增加[ScaffoldColumn(真)] - 它可能會欺騙動態數據,以使排序

[DisplayColumn("LastNameFirstName", "LastName", false)] 
public partial class Employee 
{ 
    [ScaffoldColumn(true)] 
    public string LastNameFirstName 
    { 
     get { return LastName + ", " + FirstName; } 
    } 
} 
+0

好想法 - 但這不是爲我工作。謝謝。 – 2009-11-25 20:29:08

+0

這是不正確的。 – 2011-08-05 16:45:34