如何将GridView绑定到自定义对象?

qJa*_*ake 9 vb.net asp.net data-binding gridview

如果我有以下ASP.NET代码(它不完整 - 显然有很多缺失,但没有一个重要):

    <asp:GridView>
        <Columns>
            <asp:TemplateField>
                <ItemTemplate>
                    My Label: <asp:Label />
                </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField>
                <ItemTemplate>
                    My Text Box: <asp:TextBox />
                </ItemTemplate>
            </asp:TemplateField>
        </Columns>
    </asp:GridView>
Run Code Online (Sandbox Code Playgroud)

如果我在CodeBehind中有这样的东西:

Private MyListOfObjects As List(Of MyObject)

...

Public Class MyObject

    Public MyTextBoxString as String
    Public MyLabelString as String

End Class
Run Code Online (Sandbox Code Playgroud)

如何绑定GridView,以便一行等同于我的MyListOfObjects列表中的一个项目,以便数据将填充并保持跨页面加载或回发?我之前从未做过这样的自定义数据绑定,所以完整的解释会非常有用.到目前为止,我遇到的所有教程都只讨论了使用GridViews直接使用数据库查询结果,这不是我需要的.

谢谢!

Jon*_*onH 8

只需将gridview的数据源设置为您的对象即可.

MyGridView.DataSource = myList
MyGridView.DataBind()
Run Code Online (Sandbox Code Playgroud)

这是一个非常类似的帖子:

将返回List <employee>的方法绑定到gridview

看起来你正在使用vb.net中的列表.记住列表可以包含整数,字符串,日期,对象(这些包括用户定义的类型(您的对象)).因此,您可以通过将datasource属性设置为列表来将gridview绑定到列表对象.

在上面的示例中,myList可能包含大量的员工对象等.因此,将其分配给数据源,.DataBind()并在每个包含对象的行中使用gridview.