private static void AddOneTextBox(HtmlTableRow aRow, string aText, string aId)
{
  HtmlTableCell vCell;
  aRow.Cells.Add(vCell);
  
  TextBox vEdt = new TextBox();
  vCell.Controls.Add(vEdt);  vEdt.Text = aText;
  vEdt.Id = aId;
}protected void Button1_Click(object sender, EventArgs e)
{
  TextBox tb = (TextBox)this.FindControl("edtTest");
  if (tb != null || tb.Text == "1")
    tb.Text = "1";
}protected void Page_Init(object sender, EventArgs e)
{
  if (!this.IsPostBack)
  {
    //...
    AddOneTextBox(vRow, "test1", "edtTest");
  }
}我在Page_Init或Page_Load事件中动态添加的组件,如上面的代码.
当单击Button1时,找不到刚才动态创建的控件edtTest,因为页面已重新加载有没有办法处理这种情况,好比是,像设置期一样,动态创建的控件自己保存下来了,
页面重新加载后,(!this.IsPostBack)时动态创建的控件还在上面(包括录入的数据)谢谢了!!!

解决方案 »

  1.   

    动态创建的控件每次都要重新建的。
    所以不能加if (!this.IsPostBack)设计时的控件,已经写入了Html中,动态控件是每次发送到客户端才写入的所以有些麻烦。
      

  2.   

    我也知道是这方面的问题呀,
    主要是 已经 在 动态创建的控件 中手工录入了数据
    需要点Button1进行对数据的保存,
    所以就 不能 重新加载 呀,有什么办法可以实现呀,
      

  3.   

    顶!有知道原因解释一下!!
    我曾经也遇到这样的问题没解决!
    后来没办法只有创建一个数据源用datalist数据帮定做的。