Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 如何将GridView绑定到自定义对象?_Asp.net_Vb.net_Data Binding_Gridview - Fatal编程技术网

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

Asp.net 如何将GridView绑定到自定义对象?,asp.net,vb.net,data-binding,gridview,Asp.net,Vb.net,Data Binding,Gridview,如果我有以下ASP.NET代码(它不完整-显然缺少很多,但都不重要): 如何绑定GridView,使一行相当于我的MyListOfObjects列表中的一项,并使数据在页面加载或回发过程中填充和保持?我以前从未做过这样的自定义数据绑定,所以完整的解释会非常有用。到目前为止,我遇到的所有教程都只讨论如何将GridView直接用于数据库查询结果,这不是我需要的 谢谢 只需将gridview的数据源设置为您的对象 MyGridView.DataSource = myList MyGridView.Da

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

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


谢谢

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

MyGridView.DataSource = myList
MyGridView.DataBind()
这里有一个非常相似的帖子:

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


在上面的示例中,myList可能包含大量employee对象等。因此,将其分配给数据源和
.DataBind()
,然后查看一个gridview,其中每一行都包含您的对象。

您可以执行以下操作

MyGridView.DataSource = myList
MyGridView.DataBind()
 My Label: <asp:Label id="myLabel" runat="server" Text='<%# Eval("MyTextBoxString") %>'  />

首先请记住任何绑定控件,如
GridView
DropdownList
e.t.c绑定到公共属性,因此首先将您的公共成员设置为公共属性

然后创建MyObject类的对象,并将它们添加到
列表中

最后,您可以将此列表对象保存在
会话
视图状态
中,以便在回发后维护它


我希望你现在能做到!!!如果需要,您可以寻求更多帮助。

除非我事先预定义了我的列,而且我的列表与列不匹配,所以我需要手动指定行并将其映射到列表中的对象。@SpikeX-您不需要做任何事情,从网格视图中选择的任何列都将显示出来。例如,假设您有一个客户对象,该对象具有3个属性:年龄、姓名和出生日期。如果您只想显示名称和年龄,那么在.aspx标记中有两个包含名称和年龄的templatefields。我的解决方案为您解决了这个问题。您的答案是最接近的,但您没有描述如何将单个
模板字段
绑定到对象的属性-您需要使用
“@SpikeX-如果您使用的是BoundField对象,则不需要使用DataBinder.Eval。只需将DataField属性设置为相应的属性。另外,我认为它更干净。一行代码而不是5+(如果选项卡正确)。“检查这是否有帮助:查看我对您的问题的回答。
 My Label: <asp:Label id="myLabel" runat="server" Text='<%# Eval("MyTextBoxString") %>'  />
GridView1.DataSource = MyListOfObjects
GridView1.DataBind()