[英]How to add a control with an event handler dynamically to an update panel and have the event handler post back via AJAX
這是我的嘗試,由於某種原因,它不起作用。 我很茫然,嘗試了很多東西。 也許這甚至是不可能的?
ASPX:
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:PlaceHolder ID="PlaceHolder1" runat="server">
<asp:Panel ID="Panel1" runat="server">
<asp:Panel ID="Panel2" runat="server">
</asp:Panel>
</asp:Panel>
</asp:PlaceHolder>
</ContentTemplate>
</asp:UpdatePanel>
</asp:Content>
后面的代碼:
protected void Page_Load(object sender, EventArgs e)
{
Button aa = new Button();
UpdatePanel1.ContentTemplateContainer.Controls.Add(aa);
Panel2.Controls.Add(aa);
aa.Click += new System.EventHandler(this.Button1_Click);
}
protected void Button1_Click(object sender, EventArgs e)
{
Button bb = new Button();
UpdatePanel1.ContentTemplateContainer.Controls.Add(bb);
Panel2.Controls.Add(bb);
bb.Click += new System.EventHandler(this.Button2_Click);
int i = 0;
}
protected void Button2_Click(object sender, EventArgs e)
{
int i = 0;
}
添加第一個按鈕沒有問題。 當我單擊它時,它將對Button1_Click進行AJAX回發並添加按鈕號2。但是,當我單擊按鈕2時,它將進行常規的回發,並且消失並且事件處理程序從不觸發。
感謝所有的幫助,在此先感謝。
在asp.net中,不可能自動維護動態生成的控件的狀態。
因此,您需要某種機制來維護動態生成的控件的狀態。 如下所示,它將對您有所幫助。
protected void Page_Load(object sender, EventArgs e)
{
Button aa = new Button();
UpdatePanel1.ContentTemplateContainer.Controls.Add(aa);
Panel2.Controls.Add(aa);
aa.Click += new System.EventHandler(this.Button1_Click);
if(Convert.ToString(ViewState["AddTwoButton"]) == "1")
CreateSecoundButton();
}
private void CreateSecoundButton()
{
Button bb = new Button();
UpdatePanel1.ContentTemplateContainer.Controls.Add(bb);
Panel2.Controls.Add(bb);
bb.Click += new System.EventHandler(this.Button2_Click);
int i = 0;
}
protected void Button1_Click(object sender, EventArgs e)
{
CreateSecoundButton();
ViewState["AddTwoButton"] = "1";
}
protected void Button2_Click(object sender, EventArgs e)
{
int i = 0;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.