从c#侧创建Button和OnClick事件 - asp.net

时间:2017-03-31 10:19:59

标签: c# html asp.net button onclick

我从c#侧创建一个按钮,如下所示:

content += "<button class='btn btn-info' runat='server' style='margin-left:4%' id='Like" + dr[0] + "' onclick='likeClick'>";

事件真的很简单,我只想看看它是否有效:

protected void likeClick(object sender, EventArgs e)
{
    content = sender.ToString();
}

但是当我点击按钮时它没有触发事件,我在事件中设置了一个断点并且我调试但它没有启动该功能。我在浏览器中打开了Inspect Element并单击了按钮。它告诉我这个:

enter image description here

我在这里做错了什么?

1 个答案:

答案 0 :(得分:0)

我了解您要动态创建Button服务器控件。你创造的方式是错误的。您必须实例化Button对象,声明Click事件并将其添加到您的页面。此外,由于它是动态创建的控件,因此需要在每次回发时重新创建它。以下是类似场景的示例代码:

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
        <asp:PlaceHolder runat="server" ID="phControl" />
    </form>
</body>
</html>

    protected void Page_Load(object sender, EventArgs e)
    {
        Button btnButton = new Button();
        btnButton.Style.Add("margin-left", "4%");
        btnButton.ID = "like"+ dr[0];
        btnButton.Text = "Like";
        btnButton.Click += BtnButton_Click;
        phControl.Controls.Add(btnButton);
    }

    private void BtnButton_Click(object sender, EventArgs e)
    {
        string content = sender.ToString();
        Response.Write(content);
    }