如果我在页面加载后非常快地单击按钮,则不会触发回发。以下示例说明了这一点(您必须两次非常快地单击按钮):
<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。但是如果你非常快地点击按钮,就会发生事件不会触发。
我认为,此时此页面尚未完全加载。或者这种行为还有其他原因吗?你怎么处理这个?
答案 0 :(得分:0)
您将在回发时丢失所有javascript dom更新。您所解释的内容听起来是正确的......您会看到客户端点击事件后只是 ,然后重新发布页面并重置dom。
通过填充文本框尝试相同的练习。在该实例中,值将保持为文本框依赖于viewstate。您可以在跨度上放置一个runat =“server”,但我相信您必须手动将值分配给viewstate,因为我不相信htmlgenericcontrols会自动使用viewstate。