日期:2014-05-20  浏览次数:20405 次

找不到动态添加的控件怎么办?
现在用
DataTable   dt   =   GetTable( ".... ");//到到表的数据
for   (int   i   =   0;   i   !=   dt.rows.count;   ++i)
{
      RadioButton   rb   =   new   radiobutton();
      rb.id   =   "rb_ "   +   i;
      panel1.controls   .add(rb);
}

虽然控件是成功添加了,但是执行下的代码找不到控件
panel1.controls.count
只返回   1,而不是实际页面显示数目。

为什么?   如何解决,谢谢解答!

------解决方案--------------------
代码看来是可以的
检查一下,是不是确实只有一行数据啊
------解决方案--------------------
你的描述逻辑中根本看不出“panel1.controls.count”何时执行。你把这句放在“for{}”结束后的那一行也是返回0吗?
------解决方案--------------------
这段代码应该不能执行吧:
rb.id = "rb_ " + i.ToString();
------解决方案--------------------
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
for (int i = 0; i != 5; ++i)
{
RadioButton rb = new RadioButton();
rb.Text = i.ToString();
rb.ID = "rb_ " + i;
Panel1.Controls.Add(rb);
}
}
protected void Button1_Click(object sender, EventArgs e)
{
}
protected void Button2_Click(object sender, EventArgs e)
{
Response.Write(Panel1.Controls.Count); // 输出 1
}
}