重复单击时,asp.net按钮不会导致回发

时间:2011-07-05 09:31:07

标签: asp.net button click postback

如果我在页面加载后非常快地单击按钮,则不会触发回发。以下示例说明了这一点(您必须两次非常快地单击按钮):

<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。但是如果你非常快地点击按钮,就会发生事件不会触发。

我认为,此时此页面尚未完全加载。或者这种行为还有其他原因吗?你怎么处理这个?

1 个答案:

答案 0 :(得分:0)

您将在回发时丢失所有javascript dom更新。您所解释的内容听起来是正确的......您会看到客户端点击事件后只是 ,然后重新发布页面并重置dom。

通过填充文本框尝试相同的练习。在该实例中,值将保持为文本框依赖于viewstate。您可以在跨度上放置一个runat =“server”,但我相信您必须手动将值分配给viewstate,因为我不相信htmlgenericcontrols会自动使用viewstate。