服务器客户端上的按钮不适用于Asp.Net

服务器客户端上的按钮不适用于Asp.Net,asp.net,button,server,webforms,Asp.net,Button,Server,Webforms,我有一个在运行时创建的按钮 sb.Append("<button runat="server" onserverclick="btnTaskDelete_Click" id='Task1' style="float: right; margin-right: 14px;height: 27px;width: 27px;" class='btn btn-danger'><i style ="transform: translate(-50%, -50%); width: 12p

我有一个在运行时创建的按钮

sb.Append("<button runat="server" onserverclick="btnTaskDelete_Click"  id='Task1' style="float: right; margin-right: 14px;height: 27px;width: 27px;" class='btn btn-danger'><i style ="transform: translate(-50%, -50%); width: 12px; height: 6px; display: block;" class="fa fa-trash"></i></button>");
但不管我怎么做,btnTaskDelete_点击都不会被解雇

注意
我通过在客户端调用Onclick方法解决了这个问题,然后通过ajax调用调用服务器端函数

您不能像这样使用
StringBuilder
从代码后面添加HTML按钮服务器控件。通过以下示例,使用类创建按钮并将其放入表单(或其他服务器控件,如
面板
)中:

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        var button = new System.Web.UI.HtmlControls.HtmlButton();

        button.Id = "Task1";
        button.Attributes["style"] = "float: right; margin-right: 14px;height: 27px;width: 27px;";
        button.Attributes["class"] = "btn btn-danger";
        button.ServerClick += new EventHandler(btnTaskDelete_Click);
        button.InnerHtml = "<i style ="transform: translate(-50%, -50%); width: 12px; height: 6px; display: block;" class="fa fa-trash"></i>";

        Form1.Controls.Add(button); // add to form server control named 'Form1'
    }
}

不能像字符串一样添加动态按钮。正如您所知,还有其他功能可以实现如下相同的功能

风格:

.myclass
{
        float: right; margin-right: 14px;height: 27px;width: 27px;
}
动态控制:

Button myControl = new Button();
myControl.Text = "Click Me";  
myControl.ID = "Task1";
myControl.CssClass = "btn btn-danger myclass";
myControl.Click += new EventHandler(this.button_Click);
Page.Controls.Add(myControl);

void button_Click(object sender, System.EventArgs e)
{
     //your stuff goes here...
}
注意:这应该在每次回发的页面加载到初始控件中。这将维护viewstate,因此它将关注控件中输入的值

.myclass
{
        float: right; margin-right: 14px;height: 27px;width: 27px;
}
Button myControl = new Button();
myControl.Text = "Click Me";  
myControl.ID = "Task1";
myControl.CssClass = "btn btn-danger myclass";
myControl.Click += new EventHandler(this.button_Click);
Page.Controls.Add(myControl);

void button_Click(object sender, System.EventArgs e)
{
     //your stuff goes here...
}