3

我正在尝试使用我在开发 Web 应用程序时可以召集的最强大的 OOP,但是当我使用代码创建对象时,我遇到了向我的对象添加事件处理程序的问题。我确信这是一个相当简单的解决方案,我只是不断地放弃,但我不知道接下来要尝试什么。下面是我一直在玩的一些测试代码,只是想按下按钮去做一些事情。

(想象一下“int i;”行上有一个断点)

    Button b = new Button();
    b.Text = "Do Something";
    b.Attributes.Add("runat", "server");
    b.Attributes.Add("OnClick", "click");
    form1.Controls.Add(b);

    private void click(object sender, EventArgs e)
    {
        int i;
    }

由于这是我的 Page_Load 创建的一个新按钮,我不能只对 XHTML 进行硬编码。调试永远不会达到我的断点。我也没有在 CheckBoxes 上取得任何成功。

4

2 回答 2

11

您必须订阅该Click事件:

Button b = new Button();
b.Text = "Do Something";
b.Click += click;
form1.Controls.Add(b);

private void click(object sender, EventArgs e)
{
    int i;
}

通过将onclickAttribute 添加到 Button 的Attributes集合中,它将呈现为 HTML 输入标记上的属性。在这种情况下,您可以使用它在客户端执行一些 javascript 代码。

b.Attributes.Add("onclick", "alert('Hey')");

//Will render the button as
<input type="submit" name="x" value="Do Something" onclick="alert('Hey')">
于 2013-02-14T01:22:41.680 回答
1

你可以做:

Button b = new Button();
b.Text = "Do Something";
b.Click += new EventHandler((s, ev) =>
                        {
                            int i;
                        });
form1.Controls.Add(b);
于 2015-10-04T15:13:47.497 回答