ASP.NET GridViewポストバックがポストされたコントロールの値を設定しない
-
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へのポストバックデータバインドの移動
所属していません StackOverflow