Я динамически создаю группу переключателей внутри элемента управления asp:table.
например: Qst1
rb1
rb2
rb2
Qyst2
rb1
rb2
rb2
Необходимость:
Пользователь должен выбрать ответ на каждый вопрос. Я планировал использовать для этого собственный валидатор. Пожалуйста, помогите мне в этом
код:
RadioButton radioButton = new RadioButton();
radioButton.ID = id;
radioButton.ToolTip = text;
radioButton.Attributes.Add(ID_TEXT, id);
radioButton.GroupName = categoryID + QUESTIONS;
radioButton.EnableViewState = true;
radioButton.AutoPostBack = false;
radioButton.Checked = isSelected;
TableCell cell = new TableCell();
cell.Controls.Add(radioButton);
TableRow row = new TableRow();
row.Height = 20;
row.Cells.Add(cell);
table.Rows.Add(row);
Обновлять:
Я получил решение, используя валидатор Custome:
Код:
protected void ValidateSample(object source, ServerValidateEventArgs args)
{
RadioButton rb = new RadioButton();
string rbGroupName = string.Empty;
bool valid = false;
bool groupSelection = false;
foreach (TableRow tr in QuestionTable.Controls)
{
foreach (TableCell tc in tr.Controls)
{
if (tc.Controls[0] is Label)
{
if (QuestionTable.Rows.GetRowIndex(tr) + 1 <= QuestionTable.Rows.Count)
{
rb = (RadioButton)
QuestionTable.Rows[QuestionTable.Rows.GetRowIndex(tr) + 1]
.Cells[0].Controls[0];
if (rb != null)
{
rbGroupName = rb.GroupName;
valid = groupSelection;
groupSelection = false;
}
}
break;
}
if (tc.Controls[0] is RadioButton)
{
rb = (RadioButton)tc.Controls[0];
if (rb.GroupName.Equals(rbGroupName))
{
if (rb.Checked)
{
groupSelection = true;
}
}
break;
}
}
}
args.IsValid = valid;
}
<asp:CustomValidator ID="CustomValidator1" runat="server" class="LabelErrorStyle" Text="*" ErrorMessage="Please select one of the radio button" OnServerValidate="ValidateSample" ValidateEmptyText="true"
Display="Dynamic" >*</asp:CustomValidator>
RadioButton List
, а затем создать обязательный валидатор поля и прикрепить его также в коде - person V4Vendetta   schedule 08.12.2011