- - PR -
[C#] DataGrid内のDropDownListの値を動的に変えたい
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2006-06-30 14:51
いつもお世話になっています。
http://www.atmarkit.co.jp/fdotnet/dotnettips/090dropdowndg/dropdowndg.html ↑や皆さんの意見を参考にしてDataGrid内にDropDownを配置し、その値で、更新 などをかけれるようになりました。 今分からなくて困っているのは、新しく作ったDataGridには編集時に二つDropDown Listが出てくるのですが、その片方の値を変更かけたとき、もう片方の値も動的に 変えたいのです。 DropDownList1(以下DDL1)オフィス情報格納(東京とか、名古屋とか入ってます) DropDownList2(以下DDL2)所属部署情報格納(1課とか2課とか入ってます) として、DataGridのボタン列の編集ボタンを押して編集モードにした時、 DDL1の値を変えた時にDDL2の値も変えたいのですが、DataGrid内に配置した DropDownListにはSelectedIndexChangedイベント等もなく、どうしたら いいか分かりません。(要は地方によって所属部署名称が違うのでそれ を変えたいのです。) 何かいいアイデアをご存知の方、ご教授お願いします。 |
|
投稿日時: 2006-06-30 15:30
DataGrid内で複数DropDownListを連携する方法
DataGrid内での複数DropDownListの連携 |
|
投稿日時: 2006-07-03 09:56
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=31037&forum=7
これも似た状況ですよね? |
|
投稿日時: 2006-07-03 13:53
お二方、お返事ありがとうございます。
それと見るのが遅くなってすいません。 とりあえず、しょくぱんさんのリンク先のコードを改変して 実現する事ができました。 それで理解する為にもこのリンク先のコードについての質問 なんですが、 foreach(Control ctrl in DataGrid1.Controls) { foreach (Control childC in ctrl.Controls) { dgi = (DataGridItem)childC; if (dgi.ItemType == ListItemType.Footer) { ddl = (DropDownList)dgi.FindControl("DropDown-1"); if (ddl != null) { //ここでドロップダウンのSelectedValue等を取得 } } } } 外側のforeach文はデータグリッドのコントロールを取得してると思うのですが 具体的には何を取得しているのでしょうか?内側のforeach文が取得しているのは DataGridItemのItemTyoeでいいでしょうか?(pagerとかfooterとかの) どうも外側のforeach文で取得しているのが何なのかよく分からないので、 理解する為にもご教授ください。 よろしくお願いします。 |
|
投稿日時: 2006-07-03 14:50
http://www.atmarkit.co.jp/fdotnet/dotnettips/072modpager/modpager.html
このページの中ほどに、 「ページ表示させたDataGridコントロールのコントロール・ツリー(一部)」 として載っている図をみていただきたいんですが、 外側のforeach文で取得しているのは、この図の2行目にあたる System.Web.UI.WebControls.DataGridTableというものです。 内側のforeach文で取得しているのは、おっしゃるとおりDataGridItemです。 |
1