データグリッド内のデータバインドされたテキストボックスの変更された値を取得する方法
質問
ASP.NET 1.1 - ASPX ページ上にデータバインドされ、テキスト ボックス内に値を表示する DataGrid があります。ユーザーはこの値を変更し、ボタンをクリックすると、背後のコードが基本的にグリッド内の各 DataGridItem を反復処理し、テキスト ボックスの ID に対して FindControl を実行し、その後 .Text 値を変数に割り当てます。データベースを更新します。DataGrid は新しい値で再バインドされます。
私が抱えている問題は、.Text 値を変数に割り当てるときに、取得される値が、新しく入力されたユーザー値ではなく、元のデータバインドされた値であることです。この動作の原因について何か考えはありますか?
コードサンプル:
foreach(DataGridItem dgi in exGrid.Items)
{
TextBox Text1 = (TextBox)dgi.FindControl("TextID");
string exValue = Text1.Text; //This is retrieving the original bound value not the newly entered value
// do stuff with the new value
}
解決
コードサンプルはボタンクリックイベントからのものですか?
ポストバック時にデータソースを再バインドしていませんか?
他のヒント
TextBox から値を取得しようとしているのはいつですか?つまり提供したコードサンプルはいつ実行されますか?
まだ設定していない場合は、DataGrid の ItemsCommand イベントのハンドラー メソッドを設定します。そのメソッド内で新しい TextBox 値を探す必要があります。また、DataGrid がポストバック時に再データバインドされていないことも確認する必要があります。
また、DataGrid コントロールとそのすべての機能の使用に関する Scott Mitchell の優れた記事シリーズを一読することを強くお勧めします。http://aspnet.4guysfromrolla.com/articles/040502-1.aspx
所属していません StackOverflow