人がクラスリピーターをリスト<Person>にバインドすると、バインドされた項目も更新できますか? (2ウェイ)
で定義されている人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プロパティは常に空白なのですか?
追加情報:
の効果を既に呼び出しています。Bind("Forename")
を使ってみましたが、これはTextBoxから情報を戻すようには見えません私はこれを手動で行う必要がありますか?
私が望んでいた答えではありませんが、あなたが正しいと思われます。 – ilivewithian