- PR -

ASP.NETのラジオボタンについて

投稿者投稿内容
未記入
会議室デビュー日: 2008/02/28
投稿数: 6
投稿日時: 2008-02-28 12:54
お世話になります。
ページにRadioButtonを3つ配置しています。
GroupNameを設定してどれか1つのみ選択可能として、
対応するTextboxの利用可/不可の切替をサーバ側でさせています。
(切替にはUpdatePanelを使用)

初期状態でどれも選択させていなければ問題なく動くのですが、
初期選択させようとPage_LoadでCheckedプロパティをコードで設定すると
CheckedChangedイベントが発生しなくなります。

生成されたソースをみると、
Checkedプロパティを設定したRadioButtonには「checked="checked"」、
他のRadioButtonには「onclick="javascript:〜」と違っています。

Checkedプロパティをいじるとイベントが作成されないものなのでしょうか?
よろしくお願いします。

ASP.NET2.0(VB2005)
マスターページ使用
indigo-x
大ベテラン
会議室デビュー日: 2008/02/21
投稿数: 207
お住まい・勤務地: 太陽の塔近く
投稿日時: 2008-02-28 13:57
RadioButtonには「checked="checked"」になっているのであれば
イベントは発生しないですね。

全体的に見て、これで正しい動作と思います。(LoadでCheckしているので当然動作しません)

で、もう少しプログラムを精査した方がよいです。

参考になればと思います。
未記入
会議室デビュー日: 2008/02/28
投稿数: 6
投稿日時: 2008-02-28 14:15
indigo-x様、返信ありがとうございます。

> 全体的に見て、これで正しい動作と思います。(LoadでCheckしているので当然動作しません)

そうですか。
初期値を設定する場合はイベント設定していてもダメなのですね..
Webプログラムの場合は、初期設定しないのが普通なんでしょうか。


> で、もう少しプログラムを精査した方がよいです。

精査とは?具体的にどのようにすればいいのでしょう?
何かプログラム作成の上での見落とし等ありますでしょうか。
くまっち
大ベテラン
会議室デビュー日: 2008/01/18
投稿数: 169
お住まい・勤務地: 茨城県のどこか。
投稿日時: 2008-02-28 14:44
>Webプログラムの場合は、初期設定しないのが普通なんでしょうか。
そんなことはありません。

indigo-xさんが申しているのは
checked = trueとしたラジオボタンにonclickイベントが設定されていないのは当然。
既にOn状態なのだから、これ以上Onにする必要は無い為、出力されていない。
ということですね。

それとも、他の未選択ラジオを選択してもCheckedChangedイベントが発生しないということですか?
未記入
会議室デビュー日: 2008/02/28
投稿数: 6
投稿日時: 2008-02-28 14:55
くまっち様、返信ありがとうございます。

> checked = trueとしたラジオボタンにonclickイベントが設定されていないのは当然。
> 既にOn状態なのだから、これ以上Onにする必要は無い為、出力されていない。
> ということですね。

そういうことだったのですね。すっかり勘違いしておりました。


> それとも、他の未選択ラジオを選択してもCheckedChangedイベントが発生しないということですか?

そうです。
イベントが起きないため調査していました。
このことを書いておかないとわからないですね。すみません。
rain
ぬし
会議室デビュー日: 2006/10/19
投稿数: 549
投稿日時: 2008-02-28 15:17
CheckedChangedイベントの説明を読みますと、
引用:

Checked プロパティの値がサーバーへのポスト間で変更された場合に発生します。


とあります。
ですので、Page_Loadメソッド内でCheckedプロパティの値を変更しても、
CheckedChangedイベントは発生しません。

…という説明でよいでしょうか?
未記入
会議室デビュー日: 2008/02/28
投稿数: 6
投稿日時: 2008-02-28 15:40
rain様、返信ありがとうございます。

> ですので、Page_Loadメソッド内でCheckedプロパティの値を変更しても、
> CheckedChangedイベントは発生しません。

はい、これは理解しています。
他のラジオボタンを選択後、再度選択してもCheckedChangedイベントが発生しないので
なぜかなぁと調べています。
言葉足らずで申し訳ありません。

動きとして、初期値を設定しても他のラジオボタン同様
選択状態が変わったらCheckedChangedイベントが発生して欲しいのです。
初期値設定しなければちゃんと動くのですが。
どっとねっとふぁん
ぬし
会議室デビュー日: 2005/02/23
投稿数: 935
投稿日時: 2008-02-28 16:08
RadioButtonListは使えないですか?

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