ASP.NET GridViewポストバックがポストされたコントロールの値を設定しない

StackOverflow https://stackoverflow.com/questions/149311

  •  02-07-2019
  •  | 
  •  

質問

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

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

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

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

役に立ちましたか?

解決

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

他のヒント

GridViewUpdateEventArgsを使用して、入力値を取得できる必要があります。例:

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

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

Page_Initへのポストバックデータバインドの移動

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top