【问题标题】:asp.net button doesn't cause post back when clicked repeatedlyasp.net 按钮在重复单击时不会导致回发
【发布时间】:2011-09-28 15:52:11
【问题描述】:

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

<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,触发前的按钮集,在回发后不应该是可见的。但是,如果您非常快速地单击该按钮,则会发生该事件不会触发。

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

【问题讨论】:

  • 一种解决方案是禁用该按钮并在 $(document).ready 中启用它。此时,DOM 已完全加载。

标签: asp.net button click postback


【解决方案1】:

您将在回发时丢失所有 javascript dom 更新。你所解释的听起来是正确的......你看到客户端点击事件在页面回发之前触发 并且 dom 被重置。

通过填充文本框尝试相同的练习。在这种情况下,该值将保持不变,因为文本框依赖于视图状态。您可以在跨度上放置一个 runat="server",但我相信您必须手动将值分配给 viewstate,因为我不相信 htmlgenericcontrols 会自动使用 viewstate。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-06
    • 1970-01-01
    • 1970-01-01
    • 2010-10-23
    • 2016-04-15
    相关资源
    最近更新 更多