2008-09-17 15 views
2

ASP.NET 1.1 - データバインドされ、テキストボックス内に値を表示するaspxページにデータグリッドがあります。ユーザーはこの値を変更し、コードビハインドが基本的にグリッド内の各DataGridItemを繰り返し実行するボタンをクリックすると、テキストボックスのIDのFindControlが.Text値を次に変数に代入しますデータベースを更新します。データグリッドは新しい値でリバウンドされます。データグリッド内のデータバインドされたテキストボックスの変更された値を取得する方法

私が抱えている問題は、変数に.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 
     } 

おかげ

答えて

0

だから、コードサンプルは、ボタンのクリックイベントからでしょうか?

ポストバックでデータソースを再バインドしていませんか?

+0

こんにちはアロス、 はい、それはbutton_clickイベントです。 ちょうどpage_loadのバインディングをチェックしてください...それはそうです - それは、button_clickの前にif(!Page.IsPostBack)が呼び出されていない場合のバインディングです。 ありがとう – acripps

0

いつTextBoxから値を取得しようとしていますか?つまり、提供したコードサンプルはいつ実行されますか?

まだいない場合は、DataGridのItemCommandイベントのハンドラメソッドを設定する必要があります。そのメソッド内の新しいTextBox値を探しているはずです。また、あなたのDataGridがポストバック時に再データバインドされていないことを確認する必要があります。

私はまた、非常にDataGridコントロールとそれのすべての機能を使用して上のスコット・ミッチェルの優れた連載を読ん推薦: http://aspnet.4guysfromrolla.com/articles/040502-1.aspx

+0

答えをありがとう - それはポストバックにリバウンドされているデータグリッドが原因だったが、Arosが最初に入った。リンクをチェックします – acripps

関連する問題