- PR -

DataGrid内のDropDownListの値の取得

1
投稿者投稿内容
tsune
会議室デビュー日: 2005/09/14
投稿数: 4
投稿日時: 2005-09-14 10:46
webアプリ開発ですが DataGrid内のDropDownListの値の取得で困っています。
Page_initにてDataGridに動的にDropDownListを作成しています。
ItemDataBoundにて編集時のみDropDownListのitem作成、初期値のセットをしています。
ここまでは何の問題もなかったのですが、DataGrid内の更新ボタン(UpdateCommand)を
押して、UpdateCommandの処理でDropDownListの値を取得すると必ずindex=0の値を
取得してしまいます。
Page_LoadではNotIsPostBackの時のみDataGridにDataBindしています。
過去ログを見てもわかりませんでした。
どなたかお分かりの方がいらっしゃいましたらご教授願えませんでしょうか?
よろしくお願いいたします。

環境:VisualStudio.Net2003 + IIS5.0 + Windows2000
言語:VB
todo
ぬし
会議室デビュー日: 2003/07/23
投稿数: 682
投稿日時: 2005-09-14 12:03
> Page_initにてDataGridに動的にDropDownListを作成しています。

Cell.Controls.Addですか?

DataGrid コントロールでのプログラムによるテンプレートの作成
http://www.microsoft.com/japan/msdn/library/ja/Vbcon/html/vbtskCreatingTemplatesProgrammaticallyInDataGridControl.asp

の方法を真似ればよいでしょう。
tsune
会議室デビュー日: 2005/09/14
投稿数: 4
投稿日時: 2005-09-14 12:19
お返事ありがとうございます。
おっしゃる通り microsoftのページを参考にし
作成しました。
DataGrid内にDropDownListを作る事自体は
問題なくできていると思うのですが、
更新ボタンを押してpostした時にDropDownListの
SelectedIndexが(index=0)になってると思われるのです。
私の値の取得方法が間違っているのでしょうか?

値の取得
Dim wkIndex As String
wkIndex = CType(e.Item.Cell(3).Control(0),DropDownList).SelectedIndex
mayo
会議室デビュー日: 2005/09/13
投稿数: 4
投稿日時: 2005-09-14 12:46
Control(1)じゃない?
tsune
会議室デビュー日: 2005/09/14
投稿数: 4
投稿日時: 2005-09-14 13:35
アドバイスありがとうございます。
Controls(1)で実行すると
値が有効範囲内にありませんというエラーになります。
なにか根本的にまちがっているのでしょうね。
色々試してはいるのですが・・・
tsune
会議室デビュー日: 2005/09/14
投稿数: 4
投稿日時: 2005-09-19 00:23
自己レスです。
ようやく原因がわかりました。
ページのライフサイクル関係での
動的コントロール作成場所、及びプロパティ値の設定場所等の考え方、
方法は間違っておりませんでした。
ただ基本的な事なのですが、動的に作成したコントロールのIDを
明確に設定していなかったのが原因だったようです。
やはり基本的な事からしっかり理解していないと
うまくいきませんね。
コメントを下さった皆さん、ありがとうございました。
1

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