- - PR -
[ASP.NET2.0]GridViewからの値のスマートな取得方法
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2007-01-31 17:43
Visual Web Developer 2005 Express Editionを使用して、ASP.NET2.0のGridViewを調査しております。
データコンポーネント機能(xsdファイル)で、任意のテーブルの型付データセットと全件取得用のメソッドをもつテーブルアダプターを自動生成。 GridViewのデータソースにObjectDataSourceを選択後、ビジネスオブジェクトとして上述のテーブルアダプターを指定して、GridViewに全件を自動バインドして表示しています。 画面上に設置したボタン押下のイベントハンドラで、そのGridViewの全行をループして各列の値を参照したいのですが、以下のような列インデックスベタ書き方式しか思いつきません。 もっとスマートな取得方法(ベタ書きしないで済む方法)はないものでしょうか?
[ メッセージ編集済み 編集者: hiropon 編集日時 2007-01-31 17:49 ] | ||||||||
|
投稿日時: 2007-01-31 18:15
rowとcellのfor部分をforeachにするくらいかね?
http://www.atmarkit.co.jp/fdotnet/basics/oop07/oop07_03.html | ||||||||
|
投稿日時: 2007-02-01 15:33
なるほど。ただ、特定の列だけ値を参照したい場合もありえるので... GridViewのBoundField列をTemplateFieldに変更して、その中にItemTemplateでくくったLabelコントロールを配置、LabelコントロールのTextプロパティにバウンドの設定をすれば、プログラム側から行ごとにLabelのID値でFindControlして、列を識別できることは分かったのですが、これってまっとうな方法なのでしょうか!?
| ||||||||
|
投稿日時: 2007-02-02 01:48
私も同じ方法でGridView内に配置したWebControlより値を取得しています。
FindControlメソッドの使用は定石だと思っていますが・・。 | ||||||||
|
投稿日時: 2007-02-02 17:47
sou様、返信ありがとうございます。
定石として使われていると聞いて安心しました。 さすがに列番号のベタ書きはマズイと思うので、この方法でいこうと思います。 |
1