page_load()
{
    if(!ispostback)
    {
         initform();
    }
}
void initform()
{
   page.controls.add(new datagrid) //添加一个datagrid控件
}
button_onclick()
{
     这里来获取添加的那个控件
}
--------------------------------------------
上面当page首次load的时候会添加一个datagrid
但当button_onclick时因为现在已经是postback
所以没有执行initform也就没有添加那个datagrid
所以onclick得不到datagrid
问:
如何在程序中add进来一个页面后
postback后那个控件还存在
PS:不在要page_load中再次添加谢谢

解决方案 »

  1.   

    要在page_load()中动态加控件,而不要在一个过程中加。
    如果要保存控件状态的话,可能需要加在init中。
    你可以看一下控件的生命周期的相关文章。
      

  2.   

    http://www.cnblogs.com/cathsfz/archive/2006/11/19/564929.html
      

  3.   

    没办法,没此都给让他执行
    实际上,是你每次请求一个页面,这个页面都是重新 new 一个出来,你说不加能行迈?
      

  4.   

    要在page_load()中动态加控件,而不要在一个过程中加。
    如果要保存控件状态的话,可能需要加在init中。
    你可以看一下控件的生命周期的相关文章。学习
      

  5.   

    回传后add的控件还能存在应该能实现
    up1楼的观点
      

  6.   


    page_load()
    {
        if(!ispostback)
        {
             initform();
        }
    }
    void initform()
    {
       page.controls.add(new datagrid) //添加一个datagrid控件
    }
    button_onclick()
    {
         这里来获取添加的那个控件
    }--------------------------

    page_load()
    {
        if(!ispostback)
        {
             
        }
        initform(); //既然楼主每次都要得到就放置在Page_Load中  不要限制在IsPostBack中这样就可以避免。因为每次触发服务器端时间时候都要加载Page_load 第二次的时候 由于add哪些控件是你new出来的  所以第二此没有继续new就不会保存在页面上
    }
    void initform()
    {
       page.controls.add(new datagrid) //添加一个datagrid控件
    }
    button_onclick()
    {
         这里来获取添加的那个控件
    }