当使用标准的 asp:Button 组件时,必须使用以下技术来取消自动回发(或有条件地进行回发):
通过 Button.OnClientClick 属性指定客户端操作;
实现一个返回布尔值的逻辑,该值指示是否应该执行回发。
以下不会取消回发(尽管“OnClientClickHandler”方法返回“false”):
<asp:Button ID="btn" runat="server" OnClientClick="OnClientClickHandler();" />
function OnClientClickHandler() {
return false;
}
以下实现可以:
<asp:Button ID="btn" runat="server" OnClientClick="return OnClientClickHandler();" />
看起来这种行为是由 JavaScript 代码范围的细节引起的。无论如何,我对这个场景的低级实现细节很感兴趣。
为什么第一个实现(在“OnClientClickHandler”方法调用之前没有“return”运算符)不起作用?