■22951 / inTopicNo.7) |
Re[5]: 何番目のラジオボタンを選択したのかを取得したい |
□投稿者/ ぽっち (3回)-(2008/08/06(Wed) 11:02:39)
|
■No22943 (THREE-ONE さん) に返信
何度もアドバイスを下さって助かります、有難うございます。
> それぞれ JavaScript を使うか、http://codezine.jp/a/article/aid/840.aspx のようにカスタムコントロールで対策します。 > > データソースに主キーがあるなら、<input type="radio" name="radio1" value="<%# 主キー値 %>" />として、まさんのおっしゃるように request["radio1"] がてっとり早いかも。
http://codezine.jp/a/article/aid/840.aspx サイトのような仕組みです、私が使っているカスタムコントロール内のソースも念のため 記載しておきます。
[DefaultProperty("Checked")] [ToolboxData("<{0}:ItemRadioButton runat=server></{0}:ItemRadioButton>")] public class ItemRadioButton : RadioButton { protected override bool LoadPostData(string postDataKey, NameValueCollection postCollection) { bool result = base.LoadPostData(postDataKey, postCollection); bool newChecked = postCollection[GroupName] == this.UniqueID; if (this.Checked != newChecked) { this.Checked = newChecked; return true; } return result; }
protected override void Render(HtmlTextWriter writer) { base.Render(new WriterWrapper(writer, this)); } private class WriterWrapper : HtmlTextWriter { private ItemRadioButton control;
public WriterWrapper(TextWriter writer, ItemRadioButton control) : base(writer) { this.control = control; }
public override void AddAttribute(HtmlTextWriterAttribute key, string value) { switch (key) { case HtmlTextWriterAttribute.Name: base.AddAttribute(key, control.GroupName); break; case HtmlTextWriterAttribute.Value: base.AddAttribute(key, control.UniqueID); break; default: base.AddAttribute(key, value); break; } } } }
|
|