リストコントロール上の選択結果を取得 (2012/11/8 記)

ブログの記事 リストコントロール上の選択結果を取得 に書いたコードを実際に試すためのページを追加しました。

ASP.NET のリストコントロール DropDownList, ListBox, RadioButtonList, CheckBoxList において、ユーザーが選択した ListItem に設定された Value プロパティや Text プロパティの値を、クライアント側で取得する方法です。

ソースを見てもらうと分かりますが、.NET 3.5 の場合(本ブログは .NET 3.5 です)、CheckBoxList では何故か ASP.NET 側で設定した Value が html コードの input 要素には反映されません(value 属性が出てきません)。 その場合、これも何故か不明ですが、jQuery で取得しようとすると "on" と表示されます。

ちなみに、.NET 4 では html コードの input 要素には期待通り value 属性が設定されますので、jQuery でも取得できます。どうも .NET 3.5 のバグのようです。

また、IE8 以前、IE9 でも互換モードでは、ListBox と CheckBoxList をクリックしても、最初は無反応となります。 理由は、最初に表示されたときはイベントにハンドラがアタッチされないからです。 何度かクリックしているとアタッチされて反応するようになります。理由は不明。 ちなみに、Firefox 16.0.2, Chrome 23.0.1271.64 m Safari 5.1.7, Opera 12.02 は問題なかったです。

トップへ    目次へ