簡體   English   中英

單擊動態添加按鈕時,在代碼后面觸發事件

[英]Trigger Event in behind code when click on Dynamically added button

我正在嘗試使用HtmlTextWriter從動態添加的按鈕調用btn_Click 但這不會觸發。 我無法在按鈕后面的代碼中添加事件處理程序,因為它不是ASP.NET按鈕。

    protected void btn_Click(object sender, EventArgs e)
    {
         WindowJavaScript.Alert("halo");
    }

protected void PageLoad(object sender, EventArgs e)
{
    //some checking hee to determine whether user is admin or not.
    if(isAdmin)
    {
         writer.AddAttribute(HtmlTextWriterAttribute.Class, "nav navbar-nav navbar-right");
         writer.RenderBeginTag(HtmlTextWriterTag.Ul);
         writer.RenderBeginTag(HtmlTextWriterTag.Li);

         writer.AddAttribute(HtmlTextWriterAttribute.Class, "navbar-brand");
         writer.AddAttribute("runat", "server");
         writer.AddAttribute(HtmlTextWriterAttribute.Id, "admin_B");
         writer.AddAttribute("onserverclick", "btn_Click");
         writer.RenderBeginTag(HtmlTextWriterTag.Button);

         writer.Write("Admin");
         writer.RenderEndTag();
         writer.RenderEndTag();
         writer.RenderEndTag();
    }
}

嘗試轉換代碼以將屬性映射到按鈕時,我注意到您具有writer.AddAttribute("onserverclick", "btn_Click")並且您應該具有writer.AddAttribute("onclick", "btn_Click")

您還可以通過將按鈕附加到頁面中的另一個控件來在頁面中動態添加按鈕。

protected void PageLoad(object sender, EventArgs e)
{
        //some checking hee to determine whether user is admin or not.
        if (isAdmin)
        {
            var btnAdmin = new Button();
            btnAdmin.Click += btn_Click;
            btnAdmin.Text = "Admin";
            btnAdmin.ID = "admin_B";

            otherControl.Controls.Add(btnAdmin); // you need to create otherControl on page
        }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM