ASP.net 2.0动态单选按钮

时间:2011-03-24 07:32:39

标签: c# asp.net c#-2.0 radio-button pageload

我需要在页面中创建动态单选按钮,然后在回发中访问它们的值

我使用以下代码创建按钮:

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);
}

在回发中我尝试使用他们的创建ID访问单选按钮:

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方法永远找不到答案。

请告诉我何时使用上述代码。 在load方法中,在preload中,在按钮中单击submit方法。

似乎我总是得到null并且永远找不到控件。

1 个答案:

答案 0 :(得分:1)

找不到您的控件,因为FindControl方法没有沿着控件层次结构向下移动,它只搜索顶层控件。您必须递归调用页面中的控件。