阻止链接按钮上的页面刷新点击

时间:2017-01-16 11:26:19

标签: javascript c# asp.net

我在LinkButton内使用gridview点击LinkButton打开弹出窗口。但是弹出窗口会出现一秒钟,并在页面加载时消失。 我想避免页面加载。我无法使用直接链接,因为它会影响我的网页中的其他功能。请帮忙。提前致谢

<asp:TemplateField>
    <ItemTemplate>
        <asp:LinkButton ID='lnkAbsent' OnClientClick='<%#"showModalPopup("+Eval("Category_ID")+","+Eval("Div_ID")+",1,"+Eval("AbsentStudent")+");"%>' Text='<%# Eval("AbsentStudent") %>' runat="server"></asp:LinkButton>
    </ItemTemplate>
</asp:TemplateField>

3 个答案:

答案 0 :(得分:1)

您可以尝试使用以下属性,看看它是否有效:

CausesValidation="False"

另一个解决方案如下,请尝试这个:

假设你的ASPX代码是:

<asp:LinkButton ID="someID" runat="server" Text="clicky"></asp:LinkButton>

代码背后:

public partial class _Default : System.Web.UI.Page 
{
    protected void Page_Load(object sender, EventArgs e)
    {
        someID.Attributes.Add("onClick", "return false;");
    }
}

HTML呈现的是什么

<a onclick="return false;" id="someID" href="javascript:__doPostBack('someID','')">clicky</a>

在这种情况下,会发生的事情是onclick功能成为您的验证器。如果为false,则不执行“href”链接;但是,如果确实如此,href将被执行。这消除了你的回复。

答案 1 :(得分:0)

您应该在客户端方法中使用return false,它不会触发回发事件。

function showModalPopup(){
      ///do your stuff
      return false;
}

或写点类似的内容。

<asp:LinkButton ID='lnkAbsent' OnClientClick='<%#"showModalPopup("+Eval("Category_ID")+","+Eval("Div_ID")+",1,"+Eval("AbsentStudent")+");"%>return false;' Text='<%# Eval("AbsentStudent") %>' runat="server"></asp:LinkButton>

答案 2 :(得分:0)

您可以使用UpdatePanel来避免页面刷新。

<asp:UpdatePanel runat="server">
        <ContentTemplate>

        </ContentTemplate>
    </asp:UpdatePanel>