Как подать заявку на подтверждение поля для группы динамических радиокнопок - PullRequest
0 голосов
/ 08 декабря 2011

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

1 Ответ

0 голосов
/ 08 декабря 2011

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

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

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

...