- PR -

複数のDropDownListで同じ処理

1
投稿者投稿内容
あーこ
会議室デビュー日: 2008/12/02
投稿数: 18
投稿日時: 2009-02-24 09:16
現在,WEBアプリをVB2008で作成しています。

FormView内にDropDownListとTextBoxを各8個置いていて、

共にIDには番号をふってあります。

DropDownListで選択された内容をTextBoxへ代入する処理を

DropDownListのSelectedIndexChangedにて行っています。

(DDL1で選択された内容はtxt1へ代入、DDL2の場合はtxt2へ代入という感じです。)

今はIDの番号が違うだけで同じコードを他に7回書いているのですが、

同じコードを使いまわす記述方法を教えて下さい。
turutosiya
常連さん
会議室デビュー日: 2003/06/10
投稿数: 49
お住まい・勤務地: 東京都
投稿日時: 2009-02-24 09:51
「ユーザコントロール」を作るのが良いと思います。
レイル
常連さん
会議室デビュー日: 2008/10/14
投稿数: 37
投稿日時: 2009-02-24 09:58
コード:
    Protected Sub DropDownList_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles DropDownList1.SelectedIndexChanged, _
                                                                                                                  DropDownList2.SelectedIndexChanged, _
                                                                                                                  DropDownList3.SelectedIndexChanged, _
                                                                                                                  DropDownList4.SelectedIndexChanged, _
                                                                                                                  DropDownList5.SelectedIndexChanged, _
                                                                                                                  DropDownList6.SelectedIndexChanged, _
                                                                                                                  DropDownList7.SelectedIndexChanged, _
                                                                                                                  DropDownList8.SelectedIndexChanged
        Dim textObj As TextBox = Me.FindControl("TextBox" + Right(sender.ID, 1))
        textObj.Text = sender.SelectedItem.Text
    End Sub



これでできました。
あーこ
会議室デビュー日: 2008/12/02
投稿数: 18
投稿日時: 2009-02-24 10:51
turutosiyaさん、レイルさん 返信ありがとうございます。

ユーザーコントロールを一度調べてみます。

レイルさんが作成してくれたコードですが、

DropDownListがFormView内のInsertItemTemplateにあるせいか、

「HANDLES句には、それを含む型または基本型の1つで定義されたWithEvents変数が必要です。」
というエラーになってしまいます。

InsertItemTemplateにあるDropDownListでレイルさんが作成してくれた事と同じ事は
出来ませんか?
レイル
常連さん
会議室デビュー日: 2008/10/14
投稿数: 37
投稿日時: 2009-02-24 13:03
ここに似た様な質問があるようです。

http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=44577&forum=7

各DropDownListのOnSelectedIndexChangedに以下のメソッド名を入れてあげれば宜しいのではないでしょうか。

コード:

Protected Sub DropDownList_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs)
Dim textObj As TextBox = Me.FindControl("TextBox" + Right(sender.ID, 1))
textObj.Text = sender.SelectedItem.Text
End Sub




[ メッセージ編集済み 編集者: レイル 編集日時 2009-02-24 13:06 ]
あーこ
会議室デビュー日: 2008/12/02
投稿数: 18
投稿日時: 2009-02-24 15:34
レイルさん、度々ありがとうございます。

教えて下さった内容で、希望する処理が出来る様になりました。

本当にありがとうございました。
1

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