动态的添加控件 方法是 addtext:protected void Page_Load(object sender, EventArgs e)
{
if (ViewState["count"] != null)
{
for (int i = 0; i < Convert.ToInt16(ViewState["count"]); i++)
{
addtext();
}
}}
protected void Button1_Click(object sender, EventArgs e)
{
addtext();
ViewState["count"] = Convert.ToInt16(ViewState["count"]) + 1;
} 上面是书中的一段代码 为社么在pageload里面要再判断一次 但我用下面的代码 
protected void Button1_Click(object sender, EventArgs e)
{
addtext();
ViewState["count"] = Convert.ToInt16(ViewState["count"]) + 1;
}
没有pageload的时候 只能动态的添加一行控件 有什么区别呢 
点击多次button只能添加一行控件 为何呢 在pageload再判断时 就能连续添加 
不明白...........看半天没看明白怎回事  
调试断点  也没弄清楚 
请详细解答 在线等.. 
也就是说  你用循环添加控件   跟我  连续点击事件从而添加控件  有和区别呢?

解决方案 »

  1.   

    我添加的是  在table中  点击按钮   动态的添加一行控件  
    难道说 每次添加 吧上次的给覆盖了?
    那循环添加怎么没覆盖呢?
      

  2.   

    ViewState["count"] = Convert.ToInt16(ViewState["count"]) + 1;
    这句话是干什么的,不多余吗?
      

  3.   

    protected void Button1_Click(object sender, EventArgs e)
    {
    addtext();
    }单击这个事件  始终只能添加一行控件  页面显示 始终为一行
      

  4.   

    在pageload里面循环添加,所以可以加多个但Button1点击事件每执行一次,页面就刷新一次,前面生成的控件被清空了!!!!!!
      

  5.   

    1. 页面刷新操作的基本原理 页面刷新操作是一种内部浏览器操作,对此浏览器不会根据事件或回调提供任何外部通知。从技术上讲,页面刷新是由最新请求的“简单的”重复组成的。浏览器缓存它所服务的最新请求,并在用户按下页面刷新键或按钮时重新显示。我所知道的浏览器不会为页面刷新事件提供任何类型通知——即使有,无疑也不是一种公认标准。 据此可知,服务器端代码(例如,ASP.NET、经典ASP或ISAPI DLL)无法将刷新请求与一般的提交或回发请求相区分。为了帮助ASP.NET检测和处理页面刷新,我们需要创建外围机制,使两个在其他方面相同的请求看起来不同。所有已知的浏览器都是通过重新发送最后发送的HTTP请求来实现刷新;为了使该副本不同于原始请求,一个额外的服务必须添加其他参数,而 ASP.NET页面必须能够捕获它们。没看懂!~