- PR -

DropDwonListに関して

1
投稿者投稿内容
damepg
大ベテラン
会議室デビュー日: 2003/03/19
投稿数: 229
お住まい・勤務地: 東京都内
投稿日時: 2003-03-31 11:51
VB.NETでWeb開発をしています。
下記の様にDropDwonListを表示するサブルーチンを作ったのですが、
その下記の箇所で「オブジェクト参照がオブジェクト インスタンスに設定されていません。 」
のエラーメッセージが出てしまいます。
.Items.FindByText(sel).Selected = True
ステップ実行を行うと上記エラー箇所は正常に通過しているようにみえます。
このエラーをどう回避したらよいでしょうか?

-------------------------------------------------------------------------

'「店舗ID」のデータテーブル取得
dt = SecRepCls.GetSiteIDList(Con, EastWest)
'「店舗ID」のドロップダウンリスト表示
Call SecRepCls.DDL_DataSet(DDL_Site, dt, "SiteID", "SiteID", SiteID)

Public Sub DDL_DataSet(ByVal obj As DropDownList, ByVal datatbl As DataTable, ByVal text As String, ByVal value As String, ByVal sel As String)

With obj
.Items.Clear()
.DataSource = datatbl
.DataValueField = text
.DataTextField = value
.DataBind()
.Items.FindByText(sel).Selected = True
End With

End Sub
karajan
ベテラン
会議室デビュー日: 2002/07/05
投稿数: 89
投稿日時: 2003-03-31 12:09
karajanです。

.Items.FindByText(sel).Selected = True

でエラーになるということでしょうか?
普通に考えるとselが持っている文字列に該当する項目がないからだと思うのですが、ステップ実行すると通ってる・・・?

object obj = Items.FindByText(sel).Selected
でobjがnull(VB.NETでもnullはNothingでしたっけ?)になっていないか確認してみてはどうでしょうか?

解決策じゃなくてすみません・・・・。
karajan
ベテラン
会議室デビュー日: 2002/07/05
投稿数: 89
投稿日時: 2003-03-31 12:10
訂正です。

object obj = Items.FindByText(sel).Selected

じゃなくて

Object obj = .Items.FindByText(sel)

ですね。
damepg
大ベテラン
会議室デビュー日: 2003/03/19
投稿数: 229
お住まい・勤務地: 東京都内
投稿日時: 2003-03-31 14:48
sel="3"
これに相当するDBのカラムには"3 "のようにスペースが入っていたためです。
あろがとうございました。

引用:

damepgさんの書き込み (2003-03-31 11:51) より:
VB.NETでWeb開発をしています。
下記の様にDropDwonListを表示するサブルーチンを作ったのですが、
その下記の箇所で「オブジェクト参照がオブジェクト インスタンスに設定されていません。 」
のエラーメッセージが出てしまいます。
.Items.FindByText(sel).Selected = True
ステップ実行を行うと上記エラー箇所は正常に通過しているようにみえます。
このエラーをどう回避したらよいでしょうか?

-------------------------------------------------------------------------

'「店舗ID」のデータテーブル取得
dt = SecRepCls.GetSiteIDList(Con, EastWest)
'「店舗ID」のドロップダウンリスト表示
Call SecRepCls.DDL_DataSet(DDL_Site, dt, "SiteID", "SiteID", SiteID)

Public Sub DDL_DataSet(ByVal obj As DropDownList, ByVal datatbl As DataTable, ByVal text As String, ByVal value As String, ByVal sel As String)

With obj
.Items.Clear()
.DataSource = datatbl
.DataValueField = text
.DataTextField = value
.DataBind()
.Items.FindByText(sel).Selected = True
End With

End Sub


1

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