こんにちは。
vb.net2003でweb開発をしています。
以下のように、ドロップダウンリストを作成します。
DDList.DataSource = DDListDT
DDList.DataTextField = "NAME"
DDList.DataValueField = "CODE"
DDList.DataBind()
次に、別途取得してきたコードと一致するドロップダウンリストの
値を表示させます。
DDList.SelectedValue = strCode
このとき、DDListのValueに、strCodeのコードがないとエラーになって
しまうので、事前にDDListのValueに、strCodeのコードがあるかを
チェックしたいのですが、どのようにすればよろしいでしょうか?
ご教授願います。
strCodeと言うからには文字列なんでしょうね、
If Not strCode = String.Empty Then
というのが先ず頭に浮かびますが、strCodeが
間違っている場合も考えて、とりあえず
Try
DDList.SelectedValue = strCode
Catch ex As Exception
'何か表示 or Return
End Try
とエラーと例外処理をしましょう。
我龍院さん、ありがとうございます。
If Not strCode = String.Empty Then
のチェックはしてます。
ちなみにstrCodeには"1000"などのコード値が入ってます。
たとえば、ドロップダウンリストのリストに"1000"が入っていないか?
などの判定は出来ないのでしょうか?
横から失礼して…
>たとえば、ドロップダウンリストのリストに"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
みたいな感じかな
ちと泥臭い感じかもしれないけど(汗
DDListDT というのが、DataTable の事なのであれば、
DataView で RowFilter をかけて、Count が 0 かどうか見れば OK。
また、その DataTable の主キーが CODE 列なのであれば、
.Rows.Find して、戻り値が Nothing かどうかを見ると効率が良いかな。
あ゛…ゴメンナサイ
ASPだった…私の書き込みは忘れてください
.Rows.Findで思うような処理になりました。
魔界の仮面弁士さん、あさん、大変ありがとうございました。