【问题标题】:Add ServerClick event to ASP.NET <button> element将 ServerClick 事件添加到 ASP.NET <button> 元素
【发布时间】:2011-02-15 03:40:26
【问题描述】:

我希望在后端处理 HTML &lt;button&gt;(不是 &lt;input type="button"&gt;)的点击事件。我想处理一个按钮的原因是因为我的设计到处都有按钮控件,所以修改所有的 CSS 会做更多的工作。

对于我的按钮,我有:

   <button type="submit" id="submit" runat="server">Send</button>

在我后面的代码中,我有:

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            submit.ServerClick += new EventHandler(submit_click);
        }
    }

    protected void submit_click(object sender, EventArgs e)
    {
        // never being hit
    }

这可能吗?

【问题讨论】:

    标签: asp.net events event-handling onclick


    【解决方案1】:

    您应该删除if (Page.IsPostBack) 的条件检查。您的代码当前无法工作,因为 onclick 处理程序仅在页面首次呈现时设置。然后,当用户单击按钮时,会发生回发,但现在您的页面代码不再具有与按钮关联的处理程序,因此没有要执行的代码。只需这样做:

    protected void Page_Load(object sender, EventArgs e)
    {
        submit.ServerClick += new EventHandler(submit_click);
    }
    
    protected void submit_click(object sender, EventArgs e)
    {
        // now it should get hit
    }
    

    【讨论】:

    • 谢谢。自从我完成网络表单开发以来已经有一段时间了,所以事件处理已经从我身边溜走了。感谢您的帮助。
    【解决方案2】:

    另一种方法是将其添加到按钮元素中:

    <button type="submit" id="submit" runat="server" onserverclick="Button1_OnClick">Send</button>
    
    void Button1_OnClick(object Source, EventArgs e) 
      {
         // Do Something here
      }
    

    http://msdn.microsoft.com/en-us/library/a8fd2268%28v=VS.100%29.aspx

    【讨论】:

      猜你喜欢
      • 2012-10-08
      • 2013-05-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-13
      • 2013-12-26
      • 1970-01-01
      相关资源
      最近更新 更多