简化后的代码如下:
private void Page_Load(object sender, System.EventArgs e)
{
//代码放在这儿不能马上刷新,需要有按钮按下时才会显示,容易混乱。
if(ViewState["Flag"]==null)
ViewState["Flag"]=0;
if(ViewState["Count"]==null)
ViewState["Count"]=0; int count =int.Parse (ViewState["Flag"].ToString ());

for(int i=0;i<=count;i++)
{
TextBox t=new TextBox ();
t.ID ="Name"+i.ToString ();
Panel1.Controls .Add (t);
Literal l=new Literal ();
l.Text ="<br>";
Panel1.Controls.Add(l);


}
int num=int.Parse (ViewState["Count"].ToString ()); for(int i=0;i<=num;i++)
{

TextBox t=new TextBox ();
t.ID ="Ni"+i.ToString ();
Panel2.Controls .Add (t);
Literal l=new Literal ();
l.Text ="<br>";
Panel2.Controls.Add(l);
}
}
override protected void OnPreRender(EventArgs e )
{
base.OnPreRender (e);
//代码放在这儿则前面的输入的数据会被清空

}
private void Button1_Click(object sender, System.EventArgs e)
{
ViewState["Flag"] = int.Parse (ViewState["Flag"].ToString() )+1;
} private void Button2_Click(object sender, System.EventArgs e)

ViewState["Count"] = int.Parse (ViewState["Count"].ToString() )+1;
}

解决方案 »

  1.   

    用viewstate来做。
    假如是一个datatable
    if not ispostback then
       ......
     viewstate("database")=datatalbe
    else
      datatable=viewstate("database")
    end if
      

  2.   

    忘了一点。
    在点击添加按扭后,程序执行后不要忘了加上viewstate("database")=datatalbe
      

  3.   

    没有什么datatable,就是如上所说的一组控件。当然实际比这多,我只是把和问题有关的提取出来 。
      

  4.   

    先说Button中代码执行的次序吧,当按钮按下的时候,是先执行page_load中的代码,然后才是Button_Click中的代码。照这个思路你不难发现如何解决你的问题了
      

  5.   

    我想执行顺应应该是 Page_Load  Button_Click OnPreRender
    应该作什么修改才能立即显示并保持前面输入的数据呢
      

  6.   

    在OnInit中添加控件
    把添加标志放在Session里
      

  7.   

    放page_load里
    不过button事件里要加些代码
    private void Button1_Click(object sender, System.EventArgs e)
    { ViewState["Flag"] = int.Parse (ViewState["Flag"].ToString() )+1;
    int i =int.Parse (ViewState["Flag"].ToString ());
    TextBox t=new TextBox ();
    t.ID ="Name"+i.ToString ();
    Panel1.Controls .Add (t);
    Literal l=new Literal ();
    l.Text ="<br/>";
    Panel1.Controls.Add(l);

    }
      

  8.   

    page_load里还原控件,button事件里添加控件
    这是标准的思路
      

  9.   

    icyer() 兄的 方法 前面试过,好象不行,不知有什么不对的地方。yxrj() ( ) 兄的方法试了一下,可行,正在整理中,整理成功就结贴。
      

  10.   


    测试成功,非常感谢 yxrj()同时也感谢其它各位。