如何使用LinkBut​​ton / ImageButton重定向到新页面时防止回发

时间:2015-04-08 18:29:26

标签: c# asp.net

<asp:ImageButton ID="ts" ImageUrl="ts.png" runat="server" CssClass="thumbnail" ClientIDMode="Static" OnClick="Client_Click" />
<asp:LinkButton ID="Lb4" runat="server" OnClick="Client_Click" CssClass="linkOff" Text="E"></asp:LinkButton>

代码隐藏:

protected void Client_Click(object sender, EventArgs e)
{
    int k = this.Master.Client.ID;
    if (k > 0)
    {
        Response.Redirect("http://mypage.com" + this.Master.client.SelectedValue , "_blank", "menubar=0,scrollbars=1,width=780,height=900,top=10,left=0");
    }
    else
        Response.Redirect("http://mypage.edu" + this.Master.client.SelectedValue , "_blank", "menubar=0,scrollbars=1,width=780,height=900,top=10,left=0");
}

当我点击图片按钮或链接按钮时,新页面会打开,点击的页面会进行回发。

如何避免回发,只需打开新页面。

我尝试了以下内容:

protected void Page_Load(object sender, EventArgs e)
{
    Lb4.Attributes.Add("OnClick", "javascript:return false;");
}

当我点击按钮时,没有任何反应。

3 个答案:

答案 0 :(得分:2)

您可以在javascript中设置或设置OnClientClick属性,在此处说明 - https://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.linkbutton.onclientclick(v=vs.110).aspx

或者只使用PostBackUrl属性。有很多选项或简单的删除服务器控件只使用html a-href。对于图像按钮 - 使用<img>并使用<a>包装。

答案 1 :(得分:0)

如果您不想回发,我建议您只使用HTML按钮。 http://www.w3schools.com/tags/tryit.asp?filename=tryhtml_link_image

另一个选项是使用按钮的onclientclick方法。如果您没有定义OnClick,它可能不会回发。 (无论如何,我想) https://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.button.onclientclick%28v=vs.110%29.aspx

答案 2 :(得分:0)

如果要避免回发,则必须将if-else逻辑移动到客户端(JavaScript)。至于Master.Client.ID属性,一种方法是在标记中公开值,例如在<input type="hidden">中,然后可以在JavaScript中使用。