質問はかなり古いようで、何らかの理由で編集されているため、誰かがまだ興味を持っている可能性があります。
OPが組み込みのWebフォームバインディングを考慮していないのはなぜだろうか。最近は主に MVC を使用していますが、何年もの間、ASP.NET データ バインディングを使用して数十のアプリケーションを開発してきましたが、確実に機能します。
この特定のケースでは、単一のテキスト ボックスのモデルとなるクラスを作成します。クラスには、値、CSS クラス、場合によってはその他のプロパティが含まれます。
public class RowModel
{
public string Text { get; set; }
public string CSSClass { get; set; }
...
}
次に、リピーター、グリッドビュー、またはリストビューを作成し、行テンプレートにテキスト ボックスを配置します。
<asp:ListView ID="listView1" runat="server">
...
<ItemTemplate>
<asp:TextBox id="textBox" runat="server"
cssclass="<%# CSSClass %>" Text="<%# Text %>" />
</ItemTemplate>
次に、コード ビハインドで、モデル インスタンスのリストをバインド可能なコントロールにバインドします。
List<RowModel> rowList;
...
if ( !this.IsPostBack )
{
listView1.DataSource = rowList;
listView1.DataBind();
}
またはObjectDataSource
宣言的にバインドして作成することさえできます。
次に、ポストバックごとに、ポストされた値のリストを読み取ってデータベースに戻すことができます。
ASP.NET Web フォーム バインディングは常に機能し、自動ビューステート管理により、特定のシナリオは手動の MVC に似た状態管理よりもはるかに単純になりました。たとえば、リストビューで提供される挿入テンプレートと編集テンプレートは簡単に切り替えることができましたが、プレーンな MVC では多少の努力が必要です (ただし、何が起こるかについてははるかに優れた制御が可能です)。