ドロップダウンリストに設定されている値の検索

解決


みっち  2008-09-19 16:19:10  No: 140469

こんにちは。
vb.net2003でweb開発をしています。

以下のように、ドロップダウンリストを作成します。

DDList.DataSource = DDListDT          
DDList.DataTextField = "NAME"         
DDList.DataValueField = "CODE"        
DDList.DataBind()                      

次に、別途取得してきたコードと一致するドロップダウンリストの
値を表示させます。

DDList.SelectedValue = strCode

このとき、DDListのValueに、strCodeのコードがないとエラーになって
しまうので、事前にDDListのValueに、strCodeのコードがあるかを
チェックしたいのですが、どのようにすればよろしいでしょうか?
ご教授願います。


我龍院  2008-09-19 17:20:14  No: 140470

strCodeと言うからには文字列なんでしょうね、
 If Not strCode = String.Empty Then
というのが先ず頭に浮かびますが、strCodeが
間違っている場合も考えて、とりあえず
        Try
            DDList.SelectedValue = strCode
        Catch ex As Exception
            '何か表示  or Return
        End Try
とエラーと例外処理をしましょう。


みっち  2008-09-19 18:34:39  No: 140471

我龍院さん、ありがとうございます。

If Not strCode = String.Empty Then
のチェックはしてます。
ちなみにstrCodeには"1000"などのコード値が入ってます。

たとえば、ドロップダウンリストのリストに"1000"が入っていないか?
などの判定は出来ないのでしょうか?


  2008-09-19 20:24:26  No: 140472

横から失礼して…
>たとえば、ドロップダウンリストのリストに"1000"が入っていないか?
>などの判定は出来ないのでしょうか?
できますよ
ただ単に「あるかどうか」だけでいいなら
        For Each obj As Object In ComboBox1.Items
            If obj.ToString = "1000" Then
                MessageBox.Show("1000 Exists")
                Exit For
            End If
        Next
みたいな感じ
1000があるIndexまで知りたいなら
        For i As Integer = 0 To ComboBox1.Items.Count - 1
            If ComboBox1.Items(i).ToString = "1000" Then
                MessageBox.Show("1000 exists in " & i.ToString)
                Exit For
            End If
        Next
みたいな感じかな
ちと泥臭い感じかもしれないけど(汗


魔界の仮面弁士  2008-09-19 20:41:06  No: 140473

DDListDT というのが、DataTable の事なのであれば、
DataView で RowFilter をかけて、Count が 0 かどうか見れば OK。

また、その DataTable の主キーが CODE 列なのであれば、
.Rows.Find して、戻り値が Nothing かどうかを見ると効率が良いかな。


  2008-09-19 22:29:00  No: 140474

あ゛…ゴメンナサイ
ASPだった…私の書き込みは忘れてください


みっち  2008-09-21 16:52:25  No: 140475

.Rows.Findで思うような処理になりました。
魔界の仮面弁士さん、あさん、大変ありがとうございました。


※返信する前に利用規約をご確認ください。




  


  このエントリーをはてなブックマークに追加