- PR -

DataGridに動的にDropDownListを作成

1
投稿者投稿内容
カウンター
大ベテラン
会議室デビュー日: 2004/02/19
投稿数: 123
投稿日時: 2004-04-02 14:32
WinXPで.Net FrameWork1.1とWebMatrixを使ってVBでASP開発をしています。

DataGridのTemplateColumnにDropDownListを入れたいのですが、その場合は普通、以下のようにすると思います。


Dim ddl As DropDownList
ddl = CType(DataGrid1.Items(0).Cells(0).FindControl("DropDownList1"), DropDownList)

この方法ではあらかじめ、DataGridにDropDownListを持ったTemplateColumnを用意しておかなければ
ならないと理解していますが、まったく何の設定もされていないDataGridに対して
動的にDropDownListを持たせるにはどうすれば良いのでしょうか?
ちなみに、DropDownListはItemTemplateに設定します。

よろしくお願いします。

[ メッセージ編集済み 編集者: カウンター 編集日時 2004-04-02 14:48 ]
カウンター
大ベテラン
会議室デビュー日: 2004/02/19
投稿数: 123
投稿日時: 2004-04-02 15:05
自己レスです。」

ちなみに、DataGrid1にダミーでDropDownListを持たせて不可視にして、以下のようにしたら

Dim ddl As DropDownList = CType(dgParticipation.Items(0).Cells(0).FindControl("ddldami"), DropDownList) Dim Item As ListItem

Item = New ListItem(0,"test")
ddl.Items.Add(Item)

'列の設定
PA_Column.HeaderText = "test"
PA_Column.ItemTemplate = ddl

「インデックスが範囲を超えています。負でない値で、コレクションのサイズよりも小さくなければなりません」
というエラーが返ってきました。

一行目がエラーの原因の気もするのですが、ダミーDropDownListは1列目にあるのです。
原因の検討がつく方がいましたら、ご指摘ください。
todo
ぬし
会議室デビュー日: 2003/07/23
投稿数: 682
投稿日時: 2004-04-02 16:06
>動的にDropDownListを持たせるにはどうすれば良いのでしょうか?
MSDN(またはGoogle)で検索しましょう。
http://www.microsoft.com/japan/msdn/vs/webapplication/vbtchCreatingWebServerControlTemplatesProgrammatically.asp

>一行目がエラーの原因の気もするのですが、

エラー行を特定しましょう。
http://blogs.sqlpassj.org/masami/archive/2004/02/25/700.aspx

1

スキルアップ/キャリアアップ(JOB@IT)