0

我正在向页面动态添加一个单选按钮列表,在按钮单击时我想存储这些值。但我无法在页面上找到控件。请在下面找到示例代码。

for(int i=1;i<10;i++)
{

 Table tblStars = new Table();    
 RadioButtonList rb = new RadioButtonList();    
 rb.ID = i.ToString();

----
TableCell tc=new TableCell();    
TableRow tr=new TableRow();    
tc.Controls.Add(rb);    
tr.cells.Add(tc);

tblStars.Rows.Add(tr);    
ContentPlaceHolder.Controls.Add(tblStars);

}

在按钮单击事件上,

protected void btnPost_Click(object sender, EventArgs e)

 {    
    for(int i=1;i<10;i++)    
    {    
       RadioButtonList rb = (RadioButtonList)this.Page.FindControl(i.ToString());    
    }
}

在这里,我找不到控件。FindControl 返回 null。

我在这里错过了什么吗?

谢谢

4

2 回答 2

0

因为您正在动态创建 RadioBuoon 列表,所以您需要在每次 POSTBACK之后创建它们 。

你在这样做吗?

此外,this.Page.FindControl 您不需要专门针对您期望它所在的单元格..

于 2012-09-26T16:44:21.553 回答
0

单击按钮时,您可能会丢失控件。每次单击它时,它都会进行回发,并执行 Page_Load 事件。您可能正在那里初始化您的信息,并且您的表格中的控件已重置。再次尝试在 Page_Load 事件中加载控件。您也可以尝试使用启用的视图状态。

于 2012-09-26T16:47:15.807 回答