Si tengo una lista < persona> donde la persona se define por la clase¿Cómo puedo vincular un repetidor a una lista <Person> para actualizar también los elementos enlazados? (2 vías)
class Person
{
string Forename
{
get;set;
}
string Surname
{
get; set;
}
}
Y se unen a un control del repetidor asp que tiene este aspecto:
<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>
¿Cuál es la mejor forma de obtener los datos que el usuario ingresa nuevamente en los objetos?
Pensé que el objetivo del enlace de datos era que esto se manejó con eficacia para usted, pero cuando inspecciono la colección Repeater1.Items, no se realizan cambios. ¿Tengo que escribir código para hacer algo en la línea de
//This is only intended to be pseudo code
for each item in Repeater1.Items
((Person)item.DataItem).Forename = item.FindControl("txtForname").Text;
end for
Si ese es el caso, ¿por qué es la propiedad DataItem siempre vacía?
Otros detalles:
ya estoy llamando código el efecto de
this.Repeater1.DataSource = this.PersonList;
this.Repeater1.DataBind();
He intentado usar Bind("Forename")
, pero esto no parece llevar la información desde el cuadro de texto de vuelta en el objeto, ¿tengo que hacer esto manualmente?
No era la respuesta que esperaba, pero parece que tienes razón. – ilivewithian