我有一个 asp.net 按钮控件。我的要求是,在单击按钮时,它应该被禁用并同时触发服务器端事件。我正在禁用按钮
onclientclick = "this.disabled = true;"
并通过调用服务器端方法
onclick = "someserversidemethod"
但问题是该按钮被禁用并且没有触发服务器端事件。我希望客户端和服务器端事件同时触发。请帮忙。
我有一个 asp.net 按钮控件。我的要求是,在单击按钮时,它应该被禁用并同时触发服务器端事件。我正在禁用按钮
onclientclick = "this.disabled = true;"
并通过调用服务器端方法
onclick = "someserversidemethod"
但问题是该按钮被禁用并且没有触发服务器端事件。我希望客户端和服务器端事件同时触发。请帮忙。
保留您所拥有的并设置属性UseSubmitBehavior="false"
。这将强制按钮使用 asp.net 回发机制,而不是内置的浏览器机制。
编辑
当您单击<input type="submit">
控件时,作为标准的浏览器将始终提交一个表单(这是您使用 a 时呈现给 HTML 的内容<asp:Button>
)。ASP.NET 使用此功能来启动对服务器的回发。
您遇到的问题是,如果按钮被禁用(就像您在 javascript 中所做的那样),那么浏览器将不会提交表单(即不会发生回发)。
通过使用该属性UseSubmitBehavior="false"
,您告诉 ASP.NET 忽略浏览器可以自己提交的事实,而按钮应该使用 ASP.NET 提供的 JavaScript 回发方法(与用于AutoPostback="true"
类似<asp:Checkbox>
等的方法相同) .
javascript 回发忽略了您刚刚将控件设置为禁用的事实,这意味着该控件将在屏幕上被禁用,但回发仍然会发生。
我希望这是有道理的