2011-06-16 63 views
1

我有一個List<Examination>數據源,其中每個記錄包含兩個對象。我想綁定datakeynames屬性與兩個對象的pkIds,例如GridView中的複雜類型與ObjectDataSource的多個DataKeyNames

<asp:GridView DataKeyNames="obj1.pkId, obj2.pkId" ... /> 

我以編程方式綁定網格。但我得到指示錯誤:

數據綁定:「鏈表類」不包含名爲「obj1.pkId」

辦法解決將非常感激的屬性。

編輯

class Examination 
{ 
public string name{get;set;} 
public TestClass test{get;set;} 
public Subject subject{get;set;} 
} 

class TestClass 
{ 
public int testId{get;set;} 
} 

class Subject 
{ 
public int subjectId{get;set;} 
} 

預期的DataKeyNames是「test.testId,subject.subjectId」這使得考試類對象是唯一的。

我ObjectDataSource控件將被綁定到List<Examination>

回答

1

我有同樣的問題。通過deostroll使用上面評論中描述的索引值不起作用。

我找到了解決我的問題here instead

我選擇在根對象級別實現一個屬性來表示子對象的ID。

要匹配上面的例子中,代碼應該是這樣的:

class Examination 
    { 
     public string name{get;set;} 
     public TestClass test{get;set;} 
     public Subject subject{get;set;} 
     public int TestID { get { return test.testId; } } 
     public int SubjectID { get { return subject.subjectId; } } 
    } 

    class TestClass 
    { 
     public int testId{get;set;} 
    } 

    class Subject 
    { 
     public int subjectId{get;set;} 
    } 

然後,要在我的GridView中datakeys在網格中的標記, 的DataKeyNames =「名稱,TestID,SubjectID 「