- PR -

【ASP.NET】動的DropDownListの値取得方法について

1
投稿者投稿内容
NA(-_-)MI
常連さん
会議室デビュー日: 2003/10/30
投稿数: 32
投稿日時: 2006-08-18 19:33
動的に作ったDropDownListの値ってどうやって取るのでしょう?
例えば↓こんな感じ↓
--------------------------------------------------------------------------
Sub Page_Load(・・・)
 Dim drop1 As DropDownList = New DropDownList
 drop1.AutoPostBack = True
 AddHandler drop1.SelectedIndexChanged, AddressOf drop1_Changed

 drop1.Items.Add("a")
 drop1.Items.Add("b")
End Sub

Sub drop1_Changed(ByVal sender As Object, ByVal e As System.EventArgs)

 ここで取得したい!!
 
End Sub
--------------------------------------------------------------------------

ページロード時にドロップダウン作って、
ドロップダウン変更時に値を取得したいだけなのですが、
変更処理の中では、
 drop1.SelectedIndex というのが
drop1が宣言されていないために使用できません。

このような場合はどのように取得したらよいのでしょうか?
よろしくお願いします。

[ メッセージ編集済み 編集者: NA(-_-)MI 編集日時 2006-08-18 19:34 ]
きくちゃん
ぬし
会議室デビュー日: 2003/08/01
投稿数: 854
お住まい・勤務地: 都内某所
投稿日時: 2006-08-18 19:52
NA(-_-)MIさん、こんばんは。

引用:

drop1が宣言されていないために使用できません。


そりゃそうですね。ローカル変数として宣言してますもんね。

#そういう事でなく?

【追記】
以下、取り敢えず取得できるように書きかえた例。
コード:

Dim drop1 As DropDownList = New DropDownList

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
'Dim drop1 As DropDownList = New DropDownList
drop1.AutoPostBack = True
AddHandler drop1.SelectedIndexChanged, AddressOf drop1_Changed

drop1.Items.Add("a")
drop1.Items.Add("b")
Me.form1.Controls.Add(drop1)
End Sub

Sub drop1_Changed(ByVal sender As Object, ByVal e As System.EventArgs)
Diagnostics.Debug.WriteLine(drop1.selectedindex)
End Sub



「いやいや、メンバ変数として宣言したくはないんだ」という事であれば、こう↓かな。
コード:

Sub drop1_Changed(ByVal sender As Object, ByVal e As System.EventArgs)
Dim drop1 As DropDownList = CType(sender, DropDownList)
Diagnostics.Debug.WriteLine(drop1.selectedindex)
End Sub



[ メッセージ編集済み 編集者: きくちゃん 編集日時 2006-08-18 19:59 ]
NA(-_-)MI
常連さん
会議室デビュー日: 2003/10/30
投稿数: 32
投稿日時: 2006-08-18 20:10
きくちゃん様

そういうことでしたm(_ _;)m

普通の変数はスコープ意識してるくせに、
コントロールになったとたんに混乱してました。すいません。

ドロップダウンの宣言をPage_Load外に出す方法、
sender を使用して宣言しなおす方法ともに動作しました。
CType(sender, DropDownList)の方を使おうかと思います。

ありがとうございました。

[ メッセージ編集済み 編集者: NA(-_-)MI 編集日時 2006-08-18 20:11 ]
1

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