如果我有一个列表<人>人是由班级定义的
class Person { string Forename { get;set; } string Surname { get; set; } }
我把它绑定到一个asp转发器控件,看起来像这样:
<asp:Repeater ID="Repeater1" runat="server"> <ItemTemplate> <asp:Label ID="lblForename" runat="server" Text="Forname" AssociatedControlID="txtForename" /> <asp:TextBox ID="txtForename" runat="server" Text='<%# ((Person)Container.DataItem).Forename %>' /> <br /> <asp:Label ID="lblSurname" runat="server" Text="Forname" AssociatedControlID="txtSurname" /> <asp:TextBox ID="txtSurname" runat="server" Text='<%# ((Person)Container.DataItem).Surname %>' /> <br /> </ItemTemplate> </asp:Repeater>
我认为数据绑定的全部要点是,这是有效地为您处理,但是当我检查Repeater1.Items集合时,没有任何更改.我必须编写代码来做某事
//This is only intended to be pseudo code for each item in Repeater1.Items ((Person)item.DataItem).Forename = item.FindControl("txtForname").Text; end for
如果是这样,为什么DataItem属性始终为空?
附加信息:
this.Repeater1.DataSource = this.PersonList; this.Repeater1.DataBind();
我试过使用Bind(“Forename”),但这似乎没有把TextBox中的信息带回到对象中,我必须手动执行吗?