QA@IT

ASP.NET(C#) RadioButtonコントロールのReadOnly

8305 PV

ASP.NETにてWEBコントロールのRadioButtonを使用しています。
このRadioButtonをEnable=false以外の方法で選択不可にしたいと考えています。
(色が薄くなってしまうため)
また、現在子ウィンドウにRadioButtonを貼り付けており、
子ウィンドウの開き方(親ウィンドウのボタンの種類)によって選択可能/不可能を切り替えたいです。
なにか良い方法はありますでしょうか。
ご教授いただけると幸いです。
よろしくお願いいたします。

回答

Enable=falseにしたPanelなんかに乗せてみたらどうかと思いましたがダメですね。

色が薄くなるのは、選択できないことを分かりやすくするためですが、
「選択できないけど、選択できるものと同じ色にしたい」ということですよね。それはなぜでしょうか。ユーザーには少し不親切かと思います。

選択できないのであれば、最初から選択肢として表示しないという方法はダメなんでしょうか。

編集 履歴 (0)

コントロールがdisableのときの背景色が気にくわないのですよね?
であればcssでbackground-colorを指定すればいいのではないでしょうか?

編集 履歴 (0)
  • 具体的にどうすれば良いのか教えていただけないでしょうか? -
  • 解決したようなので関係なさそうですが、css3の擬似クラスでenableとdisableの色を定義しておけばいいのでは?と思いましたが、IE8は未対応のようでした。あまり調べもせずに回答していまい申し訳ございません。 -

lovinさん、SurferOnWwwさん、midmidさん、ありがとうございます。
lovinさん、SurferOnWwwさん、返答が遅くなってしまい申し訳ございません。

RadioButtonの読み取り専用を使いたいシチュエーションとしまして、ユーザーがRadioButtonなどが配置してある入力フォームにて入力した後、ユーザー自身または他のユーザーがその入力内容をただ閲覧するフォームを出すときにできるだけ入力時と同様の形であった方が良いかと思いまして調べていました。
しかし、SurferOnWwwさん、midmidさんの仰るように閲覧用のためにわざわざ選択のできないRadioButtonを張るのは逆に不親切だと思いましたので、閲覧フォームは別の形で作ろうと思います。

ご回答頂きありがとうございました。

編集 履歴 (0)

ASP.NET の RadioButton といっても、ブラウザに送信されるのは、


<input type="radio" ... />

という html 要素であり、Enabled="False" とすれば、html 要素に disabled="disabled" という属性が追加されるだけです。

つまり「色が薄くなってしまう」というのはブラウザ側でそうしているからで、薄くすることで disable されていることを示すごく当たり前のブラウザ側の動作ということは理解されているでしょうか?

それを承知の上で、disabled="disabled" 属性をつけないで disable したのと同等の結果を得たいということですか?

編集 履歴 (0)
ウォッチ

この質問への回答やコメントをメールでお知らせします。