【问题标题】:Disable LinkButton in UpdatePanel after first click首次单击后在 UpdatePanel 中禁用 LinkBut​​ton
【发布时间】:2012-03-15 23:55:04
【问题描述】:

我正在开发一个 ASP.NET 网络表单页面,该页面具有以下 asp 标记(去除了其他控件):

<asp:UpdatePanel ID="updatePanel1" runat="server">
    <ContentTemplate>
        <asp:LinkButton ID="lnkbtnPreviousTop" OnClick="LinkButtonPrevious_Click"
            Text="Previous" runat="server">
        </asp:LinkButton>
    </ContentTemplate>
</asp:UpdatePanel>

现在,如果您多次单击此链接按钮,服务器端的LinkButtonPrevious_Click 事件处理程序将触发与单击链接一样多的次数。如何使lnkbtnPreviousTop LinkBut​​ton 在第一次单击后被禁用,但事件处理程序仍会触发一次并刷新 UpdatePanel?

我尝试将this.disabled = true; 添加到 OnClick 属性,但事件处理程序代码永远不会被命中。

【问题讨论】:

    标签: asp.net updatepanel linkbutton


    【解决方案1】:

    直接在onclick中调用回发,类似:

    lnkbtnPreviousTop.Attributes.Add("onclick", "this.disabled=true;" + Page.ClientScript.GetPostBackEventReference(lnkbtnPreviousTop, "").ToString());
    

    【讨论】:

    • 或者,您可以更改按钮样式以使其隐藏,而不是将按钮设置为禁用。
    • 我确实尝试按照您的建议添加 onclick 属性;但是它导致事件处理程序为每次点击触发两次。我放弃了这种方法,基本上遵循了您关于操纵样式的第二个建议。
    • 酷。很高兴听到这有帮助。
    • 非常感谢!工作就像一个魅力,无法在更新面板中解决这个问题。
    【解决方案2】:

    您能否在第一次单击后分享解决方案禁用 asp:LinkBut​​ton 的答案?

    @Michael Hornfeck

    我尝试使用 javascript 函数,但我没有答案

    <script type="text/javascript">
            function disabledLinkBringDataFlow() {
               
                document.getElementById('btnBringDataFlow').setAttribute("disabled", "");
               
                //document.getElementById("btnBringDataFlow").disabled = true;
            }
        </script>  

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-09-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-27
      • 2019-03-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多