- - PR -
DropDownListの初期値を表示する方法
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2008-09-17 19:54
お世話になります。
Vs2005でWebサイトを作っていますがDropDownListの初期値の表示方法がわからず困っています。 お知恵を貸してください。 DropDownListが二つ(DW1,DW2)あり連携させています。 (DW1が選択されるとDW2にDW1で絞り込んだ内容を表示させる。) データはDBから取り込んでいます。 DW1とDW2には先頭に「選択してください」と表示させたいので、 項目に「選択してください」を追加し、AppendDataBoundItemsをTrueに設定しています。 DW1の項目が選ばれた時にDW2のDataBind()を行うため、DW1だけAutoPostBackをTrueに設定しています。 Protected Sub DW1_SelectedIndexChanged(...) Handles DW1.SelectedIndexChanged DW2.Items.Clear() DW2.DataBind() 'DW1.AppendDataBoundItems = False このタイミングでやるとDW1.databind()と同じ動きをする End Sub これでほぼ期待通りの動きはしているのですが、AppendDataBoundItemsをTrueにしているせいか、DW1で項目を選択する度にDW1の項目が増えていってしまいます。(DW2は毎回クリアーしているから増えません) また、DW2については初回は先頭に「選択してください」と表示させることができるのですが、DW1を選択した時は表示できません。 (多分、DW2.Items.Clear()で消えてしまうのでしょう・・・) Page_LoadでDW1をDataBind()したあと、AppendDataBoundItems に Falseを設定してみたりしましたが期待した結果にはなりません。 上にも書いていますが、AppendDataBoundItemsを書き換えるとDataBind()が発生してしまうようで、初回だけAppendDataBoundItemsにTrueを設定して項目を追加した後でAppendDataBoundItemsをFalseに書き換えるという手法は使えないようです。 DW1の項目を増やさないためにはどうすれば良いのでしょうか? | ||||
|
投稿日時: 2008-09-18 09:53
> AppendDataBoundItemsをTrueにしているせいか、DW1で項目を選択する度にDW1の項目が増えていってしまいます。
本当ですか? PostBackかどうかの判定をせずに、Page_Loadで毎回DataBindを実行したりしてませんか? そこが一番あやしいそう。 | ||||
|
投稿日時: 2008-09-18 11:00
JavaScriptを登録するために毎回Page.DataBind()を行っていました。 これをポストバック以外の時だけにしたら直りました。 ありがとうございます。 |
1