我需要在页面中创建动态单选按钮,然后在回发中访问它们的值
我使用以下代码创建按钮:
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并且永远找不到控件。
答案 0 :(得分:1)
找不到您的控件,因为FindControl方法没有沿着控件层次结构向下移动,它只搜索顶层控件。您必须递归调用页面中的控件。