質問編集履歴

2 カテゴリ

doremifa

doremifa score 33

2016/11/25 16:28  投稿

GridView非表示BoundFieldへのBindと取得方法
###前提・実現したいこと
GridViewの更新用のキー(D)をみせたくないため
非表示のBoundFieldに設定しておきたいが
通常ではBindされていないようで取得しても空文字となっている
[実現したい操作]
1.page_loadでbind
2.ボタンB押下で編集モードへ移行
3.Aの値を編集
4.ボタンC押下でDをキーにテーブル更新
###aspx
```ここに言語を入力
<asp:GridView ID="GridView1" runat="server" OnRowCommand="GridView1_RowCommand">
<Columns>
<asp:BoundField DataField="A" HeaderText="A"></asp:BoundField>
<asp:ButtonField Text="ボタン" CommandName="B"></asp:ButtonField>
<asp:ButtonField Text="ボタン" CommandName="C"></asp:ButtonField>
<asp:BoundField DataField="D" HeaderText="D" visible=false></asp:BoundField>
</Columns>
</asp:GridView>
```
###page_load
```page_load
//sqlcmd : sqlcommand コネクションおよびコマンドテキスト入力済み
DataSet datas = new DataSet();
using (SqlDataAdapter adapt = new SqlDataAdapter())
{
adapt.SelectCommand = sqlcmd;
adapt.Fill(datas);
}
GridView1.DataSource = datas;
GridView1.DataBind();
```
###試したこと
ブラウジングしたところ最初は表示しておき、OnRowCreatedで非表示にするような情報もありましたがすでにBoundFieldにvisible=falseが設定されており変更できないため(aspxを編集できない制約)適用できませんでした。
###補足情報(言語/FW/ツール等のバージョンなど)
ドットネットフレームワーク4.5.2
C#
Webform
aspxファイルを修正できない
sqldatasource等はaspxファイルに設置していない
  • C#

    12574 questions

    C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

  • ASP.NET

    780 questions

    ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。

  • .NET Framework 3.5

    39 questions

    .NET Framework-3.5は、NET Framework 2.0にアセンブリを追加(3.0も含む)したものをベースにしています。

  • .NET Framework

    741 questions

    .NET Framework は、Microsoft Windowsのオペレーティングシステムのために開発されたソフトウェア開発環境/実行環境です。多くのプログラミング言語をサポートしています。

1 修正

doremifa

doremifa score 33

2016/11/25 16:15  投稿

GridView非表示BoundFieldへのBindと取得方法
###前提・実現したいこと
GridViewの更新用のキー(D)をみせたくないため
非表示のBoundFieldに設定しておきたいが
通常ではBindされていないようで取得しても空文字となっている
[実現したい操作]
1.page_loadでbind
2.ボタンB押下で編集モードへ移行
3.Aの値を編集
4.ボタンC押下でDをキーにテーブル更新
###該当のソースコード
###aspx
```ここに言語を入力
<asp:GridView ID="GridView1" runat="server" OnRowCommand="GridView1_RowCommand">
               <Columns>
                   <asp:BoundField DataField="A" HeaderText="A"></asp:BoundField>
                   <asp:ButtonField Text="ボタン" CommandName="B"></asp:ButtonField>
                   <asp:ButtonField Text="ボタン" CommandName="C"></asp:ButtonField>
<asp:BoundField DataField="D" HeaderText="D" visible=false></asp:BoundField>
               </Columns>
           </asp:GridView>
```
###page_load
```page_load
//sqlcmd : sqlcommand コネクションおよびコマンドテキスト入力済み
DataSet datas = new DataSet();
                       using (SqlDataAdapter adapt = new SqlDataAdapter())
                       {
                           adapt.SelectCommand = sqlcmd;
                           adapt.Fill(datas);
                       }
                       GridView1.DataSource = datas;
                       GridView1.DataBind();
       
```
###試したこと
ブラウジングしたところ最初は表示しておき、OnRowCreatedで非表示にするような情報もありましたがすでにBoundFieldにvisible=falseが設定されており変更できないため(aspxを編集できない制約)適用できませんでした。
###補足情報(言語/FW/ツール等のバージョンなど)
ドットネットフレームワーク4.5.2
C#
Webform
aspxファイルを修正できない
sqldatasource等はaspxファイルに設置していない
  • C#

    12574 questions

    C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

  • .NET Framework 3.5

    39 questions

    .NET Framework-3.5は、NET Framework 2.0にアセンブリを追加(3.0も含む)したものをベースにしています。

  • ASP.NET

    780 questions

    ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る