Я пытаюсь группы радиокнопок вместе с Groupname собственности .. Это не работает из-за соглашения об именовании в asp.net во время рендеринга ..радио кнопку Группировка asp.net
поэтому я попытался унаследованной управления RadioButton и перекрытая RadioButton и создала свой собственный контроль ..
он решил группирования проблемы, но ее не заботясь о ViewState по какой-то причине ... так что все мои радиокнопки находятся в ViewState меньше ..
вот мой код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web.UI.WebControls;
using System.Web.UI;
namespace CustomControl
{
public class GroupRadioButton : RadioButton
{
public GroupRadioButton()
: base()
{ }
protected override void Render(HtmlTextWriter writer)
{
base.Render(new GroupedRadioButtonTextWriter(writer,this.GroupName));
}
}
public class GroupedRadioButtonTextWriter : HtmlTextWriter
{
private string groupName;
public GroupedRadioButtonTextWriter(HtmlTextWriter baseWriter, string groupName) : base(baseWriter)
{
this.groupName = groupName;
}
public override void AddAttribute(HtmlTextWriterAttribute key, string value)
{
if (key == HtmlTextWriterAttribute.Name)
{
base.AddAttribute(key, this.groupName);
}
else
{
base.AddAttribute(key, value);
}
}
}
}
Может ли кто-нибудь помочь?
Можете ли вы объяснить, каким образом свойство GroupName на RadioButton не работает для вас? Работает как прелесть для меня (по крайней мере, когда я использовал WebForms). Какую версию ASP.NET WebForms вы используете (я просто проверил с 4.0) – Mirko
Вы пробовали RadioButtonList? Это создаст группу радиообъектов. Все, что вам нужно сделать, это связать источник данных с ним. http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.radiobuttonlist.aspx – SCB