首页 > 解决方案 > 如果 OnClientClick="return false",LinkBut​​ton OnCommand 函数仅在首次单击时触发

问题描述

所以我有一个链接按钮,我不希望页面在单击时刷新,所以我有 OnClientClick="return false;"。但是,这会阻止页面刷新,从 OnCommand 字段调用的函数仅在第一次单击时触发。为了让它再次触发,我需要刷新页面。

如何在保持 OnClientClick="return false;" 的同时使 OnCommand 函数在每次单击时触发 所以页面不是每次都刷新?

<asp:LinkButton CssClass="btn pauseButton" ID="pauseSubBtn" runat="server" OnCommand="populatePauseModal" CommandArgument="<%# Item.FirstName %>" OnClientClick="return false;">Pause</asp:LinkButton>

此链接按钮位于列表视图内,该列表视图位于更新面板内。我尝试设置 AsyncPostBackTrigger 但它找不到链接按钮,因为它位于列表视图内。

标签: c#asp.net

解决方案


你不能这样做。要处理一个,OnCommand您将需要一个 PostBack(页面刷新)。您可以使用UpdatePanel它看起来像没有页面刷新。但是您似乎已经在使用它,但是在添加触发器时遇到了麻烦。

您可以以编程方式将触发器添加到 LinkBut​​ton

protected void Page_Load(object sender, EventArgs e)
{
    foreach (ListViewDataItem item in ListView1.Items)
    {
        LinkButton lb = item.FindControl("pauseSubBtn") as LinkButton;
        ScriptManager.GetCurrent(Page).RegisterAsyncPostBackControl(lb);
    }
}

推荐阅读