客户端和服务器端事件不同时触发

时间:2012-07-21 15:29:50

标签: javascript

我有一个asp.net按钮控件。我的要求是,在单击按钮时,应该禁用它并同时触发服务器端事件。我正在通过

禁用按钮
onclientclick = "this.disabled = true;"

并通过

调用服务器端方法
onclick = "someserversidemethod"

但问题是该按钮被禁用而没有触发服务器端事件。我希望同时触发客户端和服务器端事件。请帮忙。

1 个答案:

答案 0 :(得分:4)

保留您拥有的内容并设置属性UseSubmitBehavior="false"。这将强制按钮使用asp.net回发机制,而不是内置的浏览器机制。

See here for more details

修改

标准浏览器将始终在您单击<input type="submit">控件时提交表单(这是使用<asp:Button>时呈现给HTML的内容)。 ASP.NET使用此功能启动回发到服务器。

你遇到的问题是,如果按钮被禁用(就像你在javascript中那样),那么浏览器将提交表单(即不会发生回发)。

通过使用属性UseSubmitBehavior="false",您告诉ASP.NET忽略浏览器可以自己提交的事实,而按钮应该使用ASP.NET提供的JavaScript回发方法(与用于AutoPostback="true"<asp:Checkbox>等内容。

javascript postback忽略了你刚刚将控件设置为禁用的事实,这意味着控件将在屏幕上禁用,但回发仍然会发生。

我希望这是有道理的