ASP.NET2.0でポストバックなしにコンボボックスの連動を実現する

結局日和ってVSSにした。
運用回らんからと。それはしようがないか。


さて、ASP.NET2.0でコンボボックス(セレクトボックス、ドロップダウンリスト)の連動を実現したい。
コンボボックスの連動とは、コンボAで入力した値によってコンボBに表示される値を変えること。
たとえば、Aで通常を選ぶとBには通常1、通常2・・・と表示され
Aで特殊を選ぶと特殊1、特殊2・・・と表示することを実現したいわけだ。
本当は、グレープシティ社のSPREADで実現したかったが、方法が見つからなかった。


以下、実現方法。
概略としてはASP.NETのhiddenを使用してjavascript
コンボBの値をhiddenに持たせて、実現する。
単純にBにASP.NETコンポーネントを使用するとjavascriptでBの値を動的に
生成したあとのポストバックでセキュリティ系の例外が発生するためこのようにする必要がある。
上のAに相当するコンボボックスは通常のASP.NETコンポーネントを使用する。
Bに相当するコンボボックスはHTMLのコンポーネントを使用する。
Bで入力した値を保持するASP.NETのhiddenコンポーネントを用意する。


AのonchangeイベントでBのoptionをjavascriptから動的に作成する。
BのonchangeイベントでBで選択された値をhiddenのvalueに設定する。
読み込む際にはhiddenの値と一致するBのoptionをselectedにするjavascript
onloadに書いておけば良い。


この方法は職場の先輩に教わった。
自分で検証した結果実現できたのでここに書いておきます。



結局日和ってVSSにした。
運用回らんからと。それはしようがないか。


さて、ASP.NET2.0でコンボボックス(セレクトボックス、ドロップダウンリスト)の連動を実現したい。
コンボボックスの連動とは、コンボAで入力した値によってコンボBに表示される値を変えること。
たとえば、Aで通常を選ぶとBには通常1、通常2・・・と表示され
Aで特殊を選ぶと特殊1、特殊2・・・と表示することを実現したいわけだ。
本当は、グレープシティ社のSPREADで実現したかったが、方法が見つからなかった。


以下、実現方法。
概略としてはASP.NETのhiddenを使用してjavascript
コンボBの値をhiddenに持たせて、実現する。
単純にBにASP.NETコンポーネントを使用するとjavascriptでBの値を動的に
生成したあとのポストバックでセキュリティ系の例外が発生するためこのようにする必要がある。
上のAに相当するコンボボックスは通常のASP.NETコンポーネントを使用する。
Bに相当するコンボボックスはHTMLのコンポーネントを使用する。
Bで入力した値を保持するASP.NETのhiddenコンポーネントを用意する。


AのonchangeイベントでBのoptionをjavascriptから動的に作成する。
BのonchangeイベントでBで選択された値をhiddenのvalueに設定する。
読み込む際にはhiddenの値と一致するBのoptionをselectedにするjavascript
onloadに書いておけば良い。


この方法は職場の先輩に教わった。
自分で検証した結果実現できたのでここに書いておきます。