执行C#事件处理程序,然后执行js函数

时间:2013-09-19 09:50:32

标签: c# javascript onclick onclientclick

我有按钮:

HTML:

 <asp:Button ID="MyBut" runat="server" OnClick="MyBut_Click" CssClass="MyBut" />

C#:

 protected void MyBut_Click(object sender, EventArgs e)
        {....}

JS:

$(document).ready(function () {
    $(".MyBut").click(function () { alert("!"); });
})

现在执行js函数,然后执行C#方法。  C#方法可以先行吗?

2 个答案:

答案 0 :(得分:0)

所以有人点击页面上的按钮,JS首先触发,然后触发C#?这是唯一可能的事件序列。处理HTML按钮单击的页面上的JS,将事件激发到Web服务器,然后C#在Web服务器上运行。

答案 1 :(得分:0)

不是真的。 C#方法在代码隐藏中调用(您使用的是ASP.NET),只有在服务器执行后端代码以形成更新页面时才会在页面重新加载时调用它。

您可以做的是让服务器端代码(C#代码)生成客户端JavaScript,然后在用户浏览器中重新加载页面时执行该JavaScript。然后,在服务器端C#代码之后执行该代码。有关示例,请参阅Inject Javascript from asp.net code behind files

另一种选择是使用AJAX来调用服务器端代码(因此代替代码隐藏)。然后你可以自己确定序列。有关使用ASP.NET的AJAX的更多信息,请参阅http://www.asp.net/ajax