试试不同的ID?你试图在同一个页面里添加两个相同ID的服务器控件吧

解决方案 »

  1.   

    我不直接回答你的问题,因为你的真正问题是出在最基础的设计方面,而不是你的问题中所表现的。我对所有动态加载控件的软件有个最低层次的建议,就是建议你在页面上(设计窗口)放置一个button,并且在你开发、调试的时候随时点这个button,看看页面回发之后动态加载的控件是否正确保持了状态。你不用加载两个控件,你随便加载一个控件,就会发现你一点也没有按照动态控件的编程逻辑设计。遵从到我的最低层次的建议来开始写这类程序,从“走路”开始而不是从“跑步”开始学习,也许更快找到真的知识。
      

  2.   

    ASP.net页面在回发时仍然调用init初始化部分进行重绘,所以如果你没有在init部分挂接的话,可能是无法实现这样的效果的。不知楼上的“建议”何处拜读?
      

  3.   

    这个问题 的确是基础设计方面的问题 因为这个问题涉及到一个周期的问题
    周期分几步 具体我不列举  
     Button btn = new Button();
        btn.Text = "aaaaa";
        btn.ID = "aa";
        btn.Click += new EventHandler(test);
        PlaceHolder1.Controls.Add(btn);
    如果把这段代码放在 ISPAGEBACK 外 一点问题都没 我也是这样实现的一个按钮的动态加载
    所以我在尝试两个按钮的时候才会出现回发的问题 这个状态不是那么好保存
    如果你知道如何解决 请回答
      

  4.   

    你自己在2个按钮的事件中设计断点然后在把代码放到ISPAGEBACK 外再设置断点,你就会发现ISPAGEBACK 外的加载控件的语句无论什么时候都有执行,而按钮中的时间只有点击了按钮以后才运行。
    建议你把PAGE中的OnInit,onLoad,OnPreRender等等都override一次,然后全部打上断点,看看加载控件时的执行顺序。
    说白了,就是动态加载的控件的代码要每次页面执行或者回送的时候都加载一次。