Динамическая радио-кнопка ASP.net 2.0 - PullRequest
0 голосов
/ 24 марта 2011

Мне нужно создать динамические радиокнопки на моей странице, а затем получить доступ к их значениям в обратной передаче

Я создаю кнопки, используя следующий код:

foreach (Answer answer in question.Answers)
{
    RadioButton radioButton = new RadioButton();
    radioButton.Text = answer.Text;
    radioButton.GroupName = question.Id.ToString();
    radioButton.ID = question.Id + "_" + answer.Id;

    TableRow answerRow = new TableRow();
    TableCell answerCell = new TableCell();
    TableCell emptyCell = new TableCell();

    emptyCell.ColumnSpan = 2;

    answerCell.Controls.Add(radioButton);
    answerRow.Cells.Add(emptyCell);
    answerRow.Cells.Add(answerCell);

    table.Rows.Add(answerRow);
}

В посте назад япопробуйте получить доступ к переключателям, используя их идентификатор создания:

foreach (Answer answer in question.Answers)
{
    RadioButton currentAnswer = Page.FindControl(question.Id + "_" + answer.Id) as RadioButton;
    if (currentAnswer != null) // Damn this null
    {
        if(currentAnswer.Checked)
        {
            answers[questionCounter] = answer;
        }
    }
    else
    {
        allQuestionsAnswered = false;
    }
}

Но похоже, что метод find никогда не находит ответ.

Пожалуйста, дайте мне знать, когда использовать приведенный выше код.В методе загрузки, в предварительной загрузке, при нажатии кнопки метода submit.

Кажется, что я всегда получаю нулевое значение и никогда не нахожу элемент управления.

1 Ответ

1 голос
/ 24 марта 2011

Ваш элемент управления не найден, поскольку метод FindControl не перемещается по иерархии элементов управления, он выполняет поиск только в элементах управления верхнего уровня.Вы должны вызывать его рекурсивно для элементов управления на вашей странице.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...