質問: datas; GridView1.DataBind(); ``` ### 試したこと ブラウジングしたところ最初は表示しておき、OnRowCreatedで非表示にするような情報もありましたがすでにBoundFieldにvisible=falseが設定されており変更できないため(aspxを編集できない制約)適用できませんでした。 ### 補足情報(言語/FW/ツール等のバージョンなど) ドットネットフレームワーク4.5.2 C# Webform aspxファイルを修正できない sqldatasource等はaspxファイルに設置していない
回答: > > GridViewの更新用のキー(D)をみせたくないため > > > それは主キーですか? 主キーであれば、主キー情報がないと UPDATE や DELETE はできないので、GridView の DataKeyNames プロパティに指定するのが普通ですが。 .aspx ファイルの GridView のコードに DataKeyNames="D" というのが含まれていませんか? それがあれば GirdView に D を表示する / しないに関係なく(当該 BoundField の Visible が true / false に関係なく)D の値を取得できます。もし、.aspx ファイルに DataKeyNames の設定がなければ .aspx.cs ファイルでも設定できますので C# のコードで設定してください。 GridView などのデータバウンドコントロールは、DataKeyNames プロパティ、子コントロール、ビューステートなどからパラメータ名と値を取得し、Keys, Values, OldValues, NewValues という IDictionary コレクションを作成します。詳しくは以下の記事を見てください。 SqlDataSource などのパラメータ http://surferonwww.info/BlogEngine/post/2010/09/26/How-a-data-bound-control-passes-parameters-to-data-source-control.aspx DataKeyNames プロパティに D が設定してあれば D の値は Keys に含まれます。 Keys, Values, OldValues, NewValues には、データバウンドコントロールの Deleting, Deleted, Inserting, Inserted, Updating, Updated イベントのハンドラの引数を通じてアクセスできます。 今回の場合、GridView.RowUpdating イベントのハンドラの引数 GridViewUpdateEventArgs オブジェクトから Keys プロパティを使って DataKeyNames に設定した主キーにアクセスできます。 GridViewUpdateEventArgs.Keys プロパティ https://msdn.microsoft.com/ja-jp/library/system.web.ui.webcontrols.gridviewupdateeventargs.keys.aspx