- - PR -
DataGridのTemplateの値の取得方法
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-01-19 23:08
はじめまして。
ASP.NETを最近はじめまして色々調べたのですが解らないので 教えてください。 DataGridにTemplateを配置し、ItemTemplateにLabelとCheckBoxを配置しました。 CheckBoxがtrueの場合のみlabelの値を取得して処理したいのですが、うまく取得する ことが出来ません。 ItemTemplateに配置したLabelの値を取得方法をお教えください。 よろしくお願いします。 | ||||
|
投稿日時: 2006-01-19 23:32
こういう話か?
| ||||
|
投稿日時: 2006-01-19 23:46
一応解説。
ASP.NET DataGridのオブジェクトモデルはとどのつまり <table>にレンダリングされるんだから 行→列(セル)→その中身、だ。 そのまんまなんで比較的わかりやすい。 ただし、ヘッダーとかフッターとかは別テンプレートなので除けること。 | ||||
|
投稿日時: 2006-01-20 08:08
lalupin4さんありがとうございます。
VB.NETで開発しているんですがこんな感じです。 For i = 0 To DataGrid1.Items.Count - 1 dgi = DataGrid1.Items(i) CheckBoxInStock = CType(dgi.FindControl("CheckBox1"), CheckBox) If CheckBoxInStock.Checked = True Then L1 = CType(dgi.FindControl("Label1"), Label).Text() End If Next Checkboxがtrueになるのですが、Label1の値が取得できないんです。 | ||||
|
投稿日時: 2006-01-20 10:25
FindControlって子コンテナの中も検索してくれるんでしたっけ?
でも、検索してくれてないとこのコードだとNULL参照でコケそうだし・・・ とりあえず、Cellの中をFindControlすべきなんじゃないでしょうか CType(dgi.Cells(0).FindControl("CheckBox1"), CheckBox) CType(dgi.Cells(0).FindControl("Label1"), Label) | ||||
|
投稿日時: 2006-01-20 11:46
現状のままでCheckBox1の方は検索が出来るのですが
label1がうまくいかないんです。 Cellsの設定しましたが、やっぱり取れませんでした。 CType(dgi.Cells(0).FindControl("Label1"), Label).Text() | ||||
|
投稿日時: 2006-01-20 12:07
あ、その前に
1. 1列目にCheckBoxとLabelが入っている 2. 1列目CheckBox2列目にLabelが入っている のかを聞いたほうがいいかな 1. なら dgi.Cells(0).Controls.Countは2になってるかどうか確認してみてください。 2. なら dgi.Cells(0).Controls.Count dgi.Cells(1).Controls.Count がそれぞれ1になってるかどうか確認してみてください。 | ||||
|
投稿日時: 2006-01-20 13:29
すみません、、説明が間違っていました。
ItemTemplateにはtableを配置してあります。 Tableは2行11列です。 その中にCheckboxが1行目1列に入っています。 Label1が2行目1列に入っています。 他にも項目が入っています。 ですので、1をやってみたらdgi.Cells(0).Controls.Countが35って 出てきました。 これで説明判りますでしょうか? |
1