如果我在页面加载后非常快地单击按钮,则不会触发回发。以下示例说明了这一点(您必须非常快地单击按钮两次):
<form id="form1" runat="server">
<div>
<span id="submitText"></span>
<br />
<asp:Button ID="btnSubmitTest" runat="server" Text="Button"
OnClientClick="document.getElementById('submitText').innerText='you should not see this after postback';" />
</div>
</form>
submitText(触发前设置的按钮)在回发后不应可见。但是,如果您非常快地单击按钮,则事件不会触发。
我认为,此时页面尚未完全加载。或者这种行为还有其他原因吗?你如何处理这个问题?
最佳答案
您将在回发时丢失所有 javascript dom 更新。您所解释的听起来是正确的...您会在页面回发并重置 dom 之前看到客户端单击事件触发。
通过填充文本框尝试相同的练习。在这种情况下,该值将保持不变,因为文本框依赖于 View 状态。您可以在跨度上放置 runat="server",但我相信您必须手动将值分配给 viewstate,因为我不相信 htmlgenericcontrols 会自动利用 viewstate。
关于重复单击时asp.net按钮不会导致回发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6580534/