- - PR -
GridViewの隠し列
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2007-01-04 17:14
お世話になります。
ASP2.0+GridViewについて教えて頂けないでしょうか? (やりたいこと) ・テーブルの内容をGridViewで一覧表示する。 仮にテーブルの項目をK1、F1、F2とします。(K1はPrimaryKey) ・選択ボタンと削除ボタンを表示される ・F2の項目は一覧に表示させたくない項目であるが、選択ボタンの 押下で選択行のF2の値を取得して、他の処理をさせたい ・削除ボタンの押下で選択行のデータを削除させたい 削除はオプティミスティック同時実行制御とする。 上記の処理をSqlDataSourceやObjectDataSourceで実現したいのですのが どのように実現したら分からないのです。 (質問1:選択ボタンの処理について) GridViewの隠し列の実現のためColumns[n].Visible=falseを実行したら列は 表示されないのですが、データ取得する時にデータ無しで返ってきます。 Columns[0].ItemStyle.Width=0もやってみたのですが、隠し列になりません。 どのように実現したら良いのでしょうか? (質問2:削除ボタンの処理について) オプティミスティック同時実行制御とするためにはテーブルの全ての項目 をGridViewと連携する必要があります。隠し列があったら実現できない のでしょうか?実現方法があれば教えて下さい。 よろしくお願いします | ||||
|
投稿日時: 2007-01-04 17:34
GridViewで非表示のデータを取り出すにはDataKeysにそのデータを入れておくとか
テンプレート化して非表示にしておくとかといった作業が必要のようです。 http://gridviewguy.com/ArticleDetails.aspx?articleID=178 > オプティミスティック同時実行制御とするためにはテーブルの全ての項目 > をGridViewと連携する必要があります。 ウィザードで生成されるソースでは全ての項目についてチェックが行われる、 というだけの話ですね。 隠している項目のデータを上記のような方法で取り出せるのであれば、データの 操作時に隠し項目のデータをデータソースに渡してチェックさせることは 可能だと思います。 また、そもそもこういった同時実行制御の部分はウィザードにたよらず自分で コントロールしたほうが効率がよい、という話もありますね。 | ||||
|
投稿日時: 2007-01-04 20:06
有難うございました
非常に助かりました | ||||
|
投稿日時: 2007-01-05 05:04
BoundFieldのVisibleプロパティをFalseに設定するとデータがバインドされないため、
GridViewのRowCreatedイベントハンドラでセルのVisibleプロパティをFalseに設定する方法もあります。
_________________ ASP.NET+Ajaxサンプル集 | JavaScript+Ajaxサンプル集 |
1