Si j'ai une liste < personne> où personne est définie par la classeComment lier un répéteur à une liste <Person> pour mettre également à jour les éléments liés? (2 voies)
class Person
{
string Forename
{
get;set;
}
string Surname
{
get; set;
}
}
Et je le liez à un contrôle répéteur asp qui ressemble à ceci:
<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>
Quel est le meilleur moyen de récupérer les données que l'utilisateur saisit dans les objets?
Je pensais que tout le point de liaison de données était que cela a été géré efficacement pour vous, mais quand j'inspecte la collection Repeater1.Items, il n'y a pas de modifications apportées. Est-ce que je dois écrire du code pour faire quelque chose le long des lignes 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 tel est le cas, pourquoi est la propriété DataItem toujours vide?
Informations complémentaires:
Je Code appelle déjà l'effet de
this.Repeater1.DataSource = this.PersonList;
this.Repeater1.DataBind();
J'ai essayé d'utiliser Bind("Forename")
, mais cela ne semble pas apporter l'info de la zone de texte en arrière dans l'objet, dois-je le faire manuellement?
Pas la réponse que j'espérais, mais il semble que vous ayez raison. – ilivewithian