aar*_*ona 1 c# data-binding ienumerable gridview
鉴于:
我有一节课:
class MyObject
{
public string Field1;
public string Field2;
}
Run Code Online (Sandbox Code Playgroud)
和以下代码:
var list = SomeFunction(); // returns a valid List<MyObject>
gvMyList.DataSource = list;
gvMyList.DataBind(); // THIS THROWS AN EXCEPTION
Run Code Online (Sandbox Code Playgroud)
和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>
Run Code Online (Sandbox Code Playgroud)
问题:
所以我知道,如果有什么实现,IEnumerable那么它可以传递给DataSource属性.据我所知,如果你传递DataSource一个List,那么我应该MyObject使用Eval("Field1")或访问该属性Eval("Field2").这不是这里的情况.相反,我得到一个异常抛出:
DataBinding: 'MyObject' does not contain a property with the name 'Field1'.
您的类包含Fields,而不是Properties ; 您必须以这种方式定义Properties:
class MyObject
{
public string Field1 { get; set; }
public string Field2 { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1883 次 |
| 最近记录: |