- - PR -
DataGridコントロール内のテンプレートカラムのコントロールを参照したい
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2003-12-01 09:44
ASP.NET(VB.NET)でWEBアプリケーションを開発中です。
DataGridコントロールのテンプレートカラムにドロップダウンリストを配置しているのですが、 バインド前にこのコントロールを参照したいのです。 やりたいことは、DataGridにデータをバインドする前に、別のドロップダウンリストで選択されている 値に応じて、テンプレートカラム内のドロップダウンリストのDataSrouceプロパティを動的に制御したいのです。 どなたかご存知の方がいらっしゃいましたら教えていただきたいと思います。 よろしくお願いします。 #「GotDotNet掲示板」でも同様の質問をさせていただいています。m(__)m |
|
投稿日時: 2003-12-01 18:57
バインド前に処理を実行するではなく、バインドした直後に実行する方法で
期待することができました。 条件を指定するDropDownList(DropDownList1)があり、これが変更されると DataGrid内のDropDownList(DropDownList2)が変更するというサンプルを作って試しました。 ※DropDownList1はDataGrid内にありません。 **手順** 1.戻り値がDataTable型の関数を作成する 例. protected DataTable SetRecords() 2.DataGrid中のDropDownListのDataSourceに1で作成した関数名を指定する 例. SetRecords( ) 3.DataGrid中のDropDownListのDataTextFiledに1で作成したDataTableの表示する列名を指定する 例. Col1 aspxファイルをHTML形式で参照し、DataGrid部分を見てみると DataSource="<%# SetRecords() %>" という記述があると思います。 この処理はイベント処理が終わった後に呼び出されます。 **ソースコード** protected DataTable SetRecords() { int index = int.Parse(DropDownList1.SelectedItem.ToString()); DataTable dt = new DataTable(); dt.Columns.Add("Data1",typeof(string)); for (int i = index ;i< index + 5;i++){ DataRow dr = dt.NewRow(); dr["Col1"] = i.ToString(); dt.Rows.Add(dr); } return dt; } DropDownList1のItemsコレクションに Text=1, Value=1 Text=2, Value=2 Text=3, Value=3 を指定しました。 |
|
投稿日時: 2003-12-02 11:54
レスありがとうございます。
試してみましたができました。 (実際にはDataSourceではなくDataMemberを変更させましたが) DataSource等に関数名を記述することは気が付きませんでした。。。 大変勉強になりました。m(__)m どうもありがとうございました。 |
1