日期:2014-05-18  浏览次数:20408 次

怎么样让页面每load一次就加一个控件啊?
代码如下:
<div   id= "contentMainBody "   runat= "server "> </div>

protected   void   Page_Load(object   sender,   EventArgs   e)
        {
                Label   lb1   =   new   Label();
                lb1.Text   = "abcd ";
                contentMainBody.Controls.Add(lb1);
        }

现在的情况是,每次load只能加载一个控件,有没有办法让他加完后保存当前的控件,然后再load的时候再加一遍。我也知道状态是不会保存的,但我需要实现这个功能。动态产生控件,然后点击按钮再添加更多的控件。

------解决方案--------------------
这样写有一个最不好的问题就是效率问题,因为每次创建的时候,都需要将原来创建好的层全部重新创建一次...................
——————————————————————————————————————————
且不管有没有“高效率”的做法,就事论事地说,你这里的说法并没有体现出正确的asp.net机制认识。

如果你写在aspx、ascx等文件上的设计代码,虽然你没有在自己的代码中“重新创建一次”,但是asp.net编译的类型中包含了这些代码。如果你往aspx上用鼠标拖入一个TextBox、一个GridView、一个Button,那么当每一次按按钮之后这个aspx所编译成的代码都要创建这个TextBox、GridView、Button。并不是因为你没有动态创建他们的代码,于是他们就高效地不需要创建了。