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

关于updatepanel的问题
因为需要局部更新所以使用了updatepanel,具体情况如下:

在一个按钮的事件中动态插入到网页中一个updatepanel,而后在其中局部更新,此种功能我认为应该能够实现但是实际出现了很大差别,现附上一个例子请各位高手帮忙解答下。

这是cs文件:
C# code

public partial class test_updatepaneltest : System.Web.UI.Page
{
    protected void show_it(object sender, EventArgs e)
    {
        ScriptManager my_script = new ScriptManager();
        panel_place.Controls.Add(my_script);

        UpdatePanel mypanel = new UpdatePanel();
        panel_place.Controls.Add(mypanel);

        Button show_btn = new Button();
        show_btn.ID = "button1";
        show_btn.Text = "inside_btn at "+DateTime.Now.Second.ToString();
        mypanel.ContentTemplateContainer.Controls.Add(show_btn);

        Button show_btn2 = new Button();
        show_btn2.ID = "button2";
        show_btn2.Text = "outside_btn at " + DateTime.Now.Second.ToString();
        showplace.Controls.Add(show_btn2);
        
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        Button show_updatepanel = new Button();
        show_updatepanel.Click += new EventHandler(show_it);
        show_updatepanel.Text = "点击这里!";
        showplace.Controls.Add(show_updatepanel);
    }
}




这是aspx文件:
C/C++ code

    <form id="form1" runat="server">
    <div>
    <asp:Label ID="showplace" runat="server"></asp:Label><br />
    <asp:Label ID="panel_place" runat="server"></asp:Label>
    </div>
    </form>



cs的using都没贴出来,aspx的<body>其他部分也是默认的。

这个代码运行结果是点击第一个插入updatepanel的按钮似乎能够正常加载updatepanel,但是在出现的updatepanel里面点击按钮会导致updatepanel直接消失,在网页读取的源文件中找不到任何updatepanel的痕迹了。

这到底是什么原因所致,请各位大大指正,本人必定虚心请教。

------解决方案--------------------
动态生成的控件,麻烦事不少啊