- - PR -
DataGrid内のDropDownListの値の取得
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 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 |
|
投稿日時: 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 の方法を真似ればよいでしょう。 |
|
投稿日時: 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 |
|
投稿日時: 2005-09-14 12:46
Control(1)じゃない?
|
|
投稿日時: 2005-09-14 13:35
アドバイスありがとうございます。
Controls(1)で実行すると 値が有効範囲内にありませんというエラーになります。 なにか根本的にまちがっているのでしょうね。 色々試してはいるのですが・・・ |
|
投稿日時: 2005-09-19 00:23
自己レスです。
ようやく原因がわかりました。 ページのライフサイクル関係での 動的コントロール作成場所、及びプロパティ値の設定場所等の考え方、 方法は間違っておりませんでした。 ただ基本的な事なのですが、動的に作成したコントロールのIDを 明確に設定していなかったのが原因だったようです。 やはり基本的な事からしっかり理解していないと うまくいきませんね。 コメントを下さった皆さん、ありがとうございました。 |
1