- - PR -
GridViewのEditTemplateの中に入っているDropDownListのSelectValue取得方法
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2008-12-19 18:49
初めて投稿させていただきます。
知識が少ないのでよろしくお願いします。 GridViewのEditTemplateにDropDownListが配置されています。 GridViewにCommandFieldを追加して行編集を可能にしました。 行を編集モードにし、更新ボタンを押したときに そのDropDownListの値を取得する方法をご教授頂きたいです。 言語はVBです。以下のコードを書きましたが取得できません(Updatingイベントのとき)↓ Protected Sub GridView1_RowUpdating(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewUpdateEventArgs) Handles GridView1.RowUpdating MsgBox(GridView1.Rows(e.RowIndex).__) End Sub とりあえずメッセージボックスにドロップダウンリストの値を表示したいです。 GridViewの編集行を選んで、__以降がわかりません。 他にもっと良い方法があればご教授願いたいです。 | ||||
|
投稿日時: 2008-12-19 22:06
GridView1.Rows(e.RowIndex).FindControl("DropDownListのID")を
DropDownListにキャストすればSelectValueが取れます。MsgBoxは本番環境では多分出力されません。 | ||||
|
投稿日時: 2008-12-19 23:03
キャストとはDropDownListのイベント(コントロールをダブルクリック)に記述することですか? 知識不足ですみません。
| ||||
|
投稿日時: 2008-12-20 00:46
キャストは
DirectCast(GridView1.Rows(e.RowIndex).FindControl("DropDownListのID"),DropDownLost) とか CTpye(GridView1.Rows(e.RowIndex).FindControl("DropDownListのID"),DropDownLost) のことです。 デザイナ上でDropDownListをダブルクリックすると確かSelectedIndexChangedイベントの ハンドラができます。今回はRowUpdatingということなのでそれは不要ですよね。 | ||||
|
投稿日時: 2008-12-22 08:32
知識不足なものでわかりませんでした。ありがとうございます。
| ||||
|
投稿日時: 2008-12-24 15:12
返信が遅れて申し訳ないのですが
CType(GridView1.Rows(e.RowIndex).FindControl("DropDownListのID"),DropDownLost)の方法で試してみたのですがやはり、DropDownListの値は取れません。 "Prompt"は"String"に変換できないとエラーが出ます。 変数に入れてデバックしてもみたのですがどうやらObject自体の値が取れているようです。 他に方法があれば御教授願いたいです。 よろしくお願いします。 | ||||
|
投稿日時: 2008-12-24 17:55
でとれるのはあくまでもDropDownListのインスタンスですよ。 それのSelectedValueをとればいいはずです。 #先の投稿スペルミス多すぎ私・・ | ||||
|
投稿日時: 2008-12-24 18:00
大事なことを忘れてました…
御指摘ありがとうございます! |