因为需要局部更新所以使用了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的痕迹了。
这到底是什么原因所致,请各位大大指正,本人必定虚心请教。
------解决方案--------------------------------------------------------
动态生成的控件,麻烦事不少啊