1
考慮:將列表數據綁定到GridView。 GridView無法找到我的財產!
我有一個類:
class MyObject
{
public string Field1;
public string Field2;
}
和下面的代碼:
var list = SomeFunction(); // returns a valid List<MyObject>
gvMyList.DataSource = list;
gvMyList.DataBind(); // THIS THROWS AN EXCEPTION
而且在一個aspx頁面GridView控件:
<asp:GridView ID="gvMyList" AutoGenerateColumns="false" runat="server">
<Columns>
<asp:TemplateField HeaderText="Field 1">
<ItemTemplate>
<asp:Label ID="lblCourse" runat="server" Text='<%# Eval("Field1") + " " + Eval("Field2") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
問題:
所以我知道如果有東西實現IEnumerable
那麼它可以傳遞給DataSource
屬性。據我所知,如果您通過DataSource
列表,那麼我應該可以通過使用Eval("Field1")
或Eval("Field2")
訪問MyObject
的屬性。這不是這裏的情況。相反,我得到拋出的異常:
DataBinding: 'MyObject' does not contain a property with the name 'Field1'.
太棒了!_____ :) – DJTripleThreat 2011-04-13 20:10:06