- PR -

RadioButtonList

1
投稿者投稿内容
あや☆
常連さん
会議室デビュー日: 2005/07/28
投稿数: 36
投稿日時: 2005-08-24 13:53
こんにちは。
いつもお世話になっております。

現在、C#.NET Webアプリケーションの開発をしています。

RadioButtonList でリスト項目を追加して、そのうちの一つの項目だけをEnabled状態にしたいのですが、
方法はありますでしょうか?
ラジオボタンを一つ一つ配置して、そこで制御をするしかありませんか?
他の処理のことや製造の工数を考えると、RadioButtonListの方が簡単なので、
できれば、RadioButtonListを使いたいと考えています。

ご存知の方がいましたら、教えてください。
よろしくお願いします。
todo
ぬし
会議室デビュー日: 2003/07/23
投稿数: 682
投稿日時: 2005-08-24 16:03
RadioButtonList1.Items[n].Attributes.Add("disabled","disabled");
でよさそうだけど、BUGのため動きません。
BUG対応のカスタムコントロールを作るとか。

http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=19786&forum=7
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=7866&forum=7
あや☆
常連さん
会議室デビュー日: 2005/07/28
投稿数: 36
投稿日時: 2005-08-24 17:10
todoさん、返信ありがとうございました。

他のページも見させていただいたのですが、解決方法がいまいち分かりませんでした。

---Microsoft サポートオンラインより引用-------------------------------------------------

RadioButtonList コントロールに関する問題を回避するには、
HtmlInputRadioButton コントロールのグループを使用します
--------------------------------------------------------------------------------

というのは、radiobuttonを一つ一つ配置して、グループ化せよ。ということなのでしょうか?
todo
ぬし
会議室デビュー日: 2003/07/23
投稿数: 682
投稿日時: 2005-08-24 19:24
RadioButtonかHtmlInputRadioButtonを一つ一つ配置して、グループ化せよ。
ということ。

それでは、面白くないのでカスタムコントロールを作ってみました。

コード:

public class MyRadioButtonList : RadioButtonList {

protected override void Render(HtmlTextWriter writer)
{
writer.Write("<table id=\"{0}\" border=0><tr>", base.ID);
for (int i = 0; i < base.Items.Count; i++) {
ListItem item = base.Items[i];
writer.Write("<td");
foreach (string key in item.Attributes.Keys) {
writer.WriteAttribute(key, item.Attributes[key]);
}
writer.Write('>');

System.Web.UI.HtmlControls.HtmlInputRadioButton rb
= new System.Web.UI.HtmlControls.HtmlInputRadioButton();
rb.ID = base.ID + "_" + i;
rb.Name = base.ID;
rb.Value = item.Value;
rb.Checked = item.Selected;
rb.RenderControl(writer);

writer.Write("<label for=\"{0}\">{1}</label>", rb.ID, item.Text);
writer.Write("</td>");
}
writer.Write("</tr></table>");
}
}



制限

Renderで多くのプロパティを無視します。

[ メッセージ編集済み 編集者: todo 編集日時 2005-08-24 19:37 ]

[ メッセージ編集済み 編集者: todo 編集日時 2005-08-24 20:14 ]
あや☆
常連さん
会議室デビュー日: 2005/07/28
投稿数: 36
投稿日時: 2005-08-25 10:25
todoさん、大変ありがとうございます。

作っていただいたカスタムコントロールを解析しながら、
参考にして作っていきたいと思います。

ありがとうございました。
また何かの時にはよろしくお願いします!!!
1

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