- PR -

(asp.net)DropDownListの初期設定について

1
投稿者投稿内容
markun
会議室デビュー日: 2008/01/22
投稿数: 2
投稿日時: 2008-01-22 11:47
初歩的な質問で申し訳ありませんが、DropDownListの設定方法についてご教授ください。

リクエスト(Request.Querystring)の内容によりDropDownListの初期値を設定したく、
最初はDropDownListのSelectedValueプロパティにより、

DropDownList.DropDownList=Request.QeuryString(string)

のようにしていたのですが、当然のことながら、リクエストがDropDownListの項目にない場合、例外が起きてしまいます。

解決策として、過去ログ等を参考に、
ItemsクラスのFindByValueを用いて、先にDropDownListの項目を検索すると方法を用いてみたのですが、DropDownListに設定してある値で検索しても戻り値が空となってしまいうまくいきません。

ちなみに、DropDownListのデータはXmlDataSourceで設定し、初期値の設定はPage_Load部で行なおうとしています。

Dim strReq As String = Request.QueryString("Request")
Dim ListItem As ListItem = DropDownList1.Items.FindByValue(strReq)

つたない質問で申し訳ありませんが、他の設定方法含め、ご教授いただけると幸いです。
どっとねっとふぁん
ぬし
会議室デビュー日: 2005/02/23
投稿数: 935
投稿日時: 2008-01-22 11:58
> DropDownListのデータはXmlDataSourceで設定し

この場合、データのバインディングはページの処理のだいぶ後のほうで発生します。
Page_Loadの時点ではまだデータがバインディングされていないので検索がうまく
動かないということになります。

対処としては、データの検索をバインディングが行われた後で行うこと、具体的には
DropDownListのPreRenderイベントで行うか、PageのPreRenderCompleteイベントで行う、
ということになるかと思います。
markun
会議室デビュー日: 2008/01/22
投稿数: 2
投稿日時: 2008-01-23 08:56
どっとねっとふぁん 様

ご教授のとおりPageのPreRenderCompleteで処理したところ、問題なく動作しました。

感謝いたいます。
1

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