Как применить проверку поля для группы динамических переключателей

Я динамически создаю группу переключателей внутри элемента управления 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>

person Geeth    schedule 08.12.2011    source источник
comment
Почему бы не использовать RadioButton List, а затем создать обязательный валидатор поля и прикрепить его также в коде   -  person V4Vendetta    schedule 08.12.2011
comment
Если я использую radiobuttonlist, он не будет соответствовать дизайну клиента.   -  person Geeth    schedule 08.12.2011
comment
Я думаю, вам следует попробовать проверку JQuery при нажатии кнопки отправки и передать имена групп функции, которая будет проверять элементы управления.   -  person V4Vendetta    schedule 08.12.2011


Ответы (1)


Вы можете добавить проверку динамически следующими способами: вы должны убедиться в различной проверке в соответствии с группой радиокнопок.

 RequiredFieldValidator rqdVal = new RequiredFieldValidator(); 
    rqdVal.ID = "rqdVal" + i.ToString(); 
    rqdVal.ControlToValidate = "id"; 
    rqdVal.ErrorMessage = "Please enter a value"; 
    rqdVal.Display =ValidatorDisplay.Dynamic; 

для получения дополнительной информации перейдите по этой ссылке

person Arun Rana    schedule 08.12.2011
comment
Вы уверены, что это сработает для radiobutton вопроса выше? - person V4Vendetta; 08.12.2011
comment
Для каждой группы радиокнопок мне нужен обязательный валидатор поля - person Geeth; 08.12.2011