Jeśli mam listę < Person> gdzie osoba jest zdefiniowana przez klasęJak powiązać repeater z Listą <Person>, aby również zaktualizować powiązane elementy? (2-way)
class Person
{
string Forename
{
get;set;
}
string Surname
{
get; set;
}
}
I wiążę go do kontroli repeater asp, która wygląda tak:
<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>
Jaki jest najlepszy sposób na uzyskanie danych, które użytkownik wpisze z powrotem w obiekty?
Wydaje mi się, że cały proces wiązania danych polegał na tym, że zostało to skutecznie obsłużone, ale kiedy sprawdzam kolekcję Repeater1.Items, nie wprowadzono żadnych zmian. Muszę napisać kod, aby zrobić coś wzdłuż linii
//This is only intended to be pseudo code
for each item in Repeater1.Items
((Person)item.DataItem).Forename = item.FindControl("txtForname").Text;
end for
Jeśli tak jest, to dlaczego jest własnością DataItem zawsze pusta?
Dodatkowe informacje:
jestem już wywołanie kodu The efekt
this.Repeater1.DataSource = this.PersonList;
this.Repeater1.DataBind();
Próbowałem za pomocą Bind("Forename")
, ale to nie wydaje się, aby doprowadzić info z TextBox powrotem do obiektu, czy muszę to zrobić ręcznie?
Nie odpowiedź, na którą liczyłem, ale wygląda na to, że masz rację. – ilivewithian