1

複雑な EditItemTemplate (1 つのテンプレートに複数のフィールド) を追加し、RowUpdating イベントからコントロールを解析すると、ユーザーが手動で入力したコントロールには値がありません。データがバインドされているときに何かが起こっていると思いますが、コードビハインドでコントロールに属性を追加するだけで動作が開始され、そのコードを削除するとコードが機能するインスタンスがありました。回避策として、Request(controlname.UniqueId) を使用して値を取得できますが、これはむしろハックです。

編集 そのように値にアクセスすると

TextBox txtValue = gvwSettings.SelectedRow.FindControl("txtValue") as TextBox;

テキスト ボックスは見つかりましたが、.Text はユーザー入力ではありません。

4

3 に答える 3

1

ViewStateをオフにしましたか?テンプレートにプログラムでコントロールを追加しましたか? もしそうなら、正しい段階でそれらを作成しましたか?

于 2008-09-29T16:10:16.300 に答える
0

ポストバック データ バインドを Page_Init に移動

于 2008-09-29T16:24:14.847 に答える
0

GridViewUpdateEventArgs を使用して、入力された値を取得できるはずです。次に例を示します。

TextBox txtValue = gvwSettings.SelectedRow.FindControl("txtValue") as TextBox;

以前にその構文を使用したことがあり、魅力的に機能します。

于 2008-09-29T16:07:34.637 に答える