在新选项卡中打开asp LinkBut​​ton

时间:2017-04-21 17:59:22

标签: c# asp.net asplinkbutton

我的gridview中有一个按钮,当用户点击它时,它会进入页面。但是,如果您右键单击它并在新选项卡中打开链接"它转到一个空白页面。我想要它,所以当用户右键单击它并且"在新标签中打开链接"去页面。这是我到目前为止的代码:

ASPX

 <asp:LinkButton ID="lnkEditbtn" data-toggle="tooltip" title="View Request" OnClick="lnkEditbtn_Click" runat="server" class="btn btn-primary btn-sm" Text="<%# bind('ticketID')%>"></asp:LinkButton>    

c#

protected void lnkEditbtn_Click(object sender, EventArgs e)
{
    GridViewRow gvr = (GridViewRow)(((Control)sender).NamingContainer);
    Label lblid = (Label)gvr.FindControl("lblMovie");
    int id = Convert.ToInt32(lblid.Text.ToString());
    SecureQueryString qs = new SecureQueryString();
    qs["ID"] = id.ToString();
    Response.Redirect("viewMovie.aspx?qs=" + qs.ToString());
}

2 个答案:

答案 0 :(得分:1)

您无法使用linkbutton执行此操作,因为点击它后redirects到所需的视图但您可以使用asp:HyperLink并将其设置为

<asp:HyperLink ID="lnkEditbtn" data-toggle="tooltip" Text="View Request"  runat="server" NavigateUrl='<%# Eval("ticketID", "~/viewMovie.aspx?qs={0}")  %>' class="btn btn-primary btn-sm" ></asp:HyperLink > 

修改

如果您希望首先加密URL,请创建一个类

 public static class encrypt
    {
        public static string encvalue(int id)
        {
            SecureQueryString qs = new SecureQueryString();
            qs["ID"] = id.ToString();
            return  qs.ToString()
        }
    }

,您的超链接将是

<asp:HyperLink ID="lnkEditbtn" data-toggle="tooltip" Text="View Request"  runat="server" NavigateUrl='<%# String.Format("~/viewMovie.aspx?qs={0}",encrypt.encvalue(Convert.ToInt32(Eval("ticketID"))))  %>' class="btn btn-primary btn-sm" ></asp:HyperLink > 

答案 1 :(得分:0)

服务器端的链接按钮将被呈现给客户端的超级链接,其中包含&#39; href&#39;作为href="javascript:__doPostBack('lnkEditbtn',''),它只是从链接按钮回发到服务器。因此,当您右键单击并在新选项卡中打开链接时,它会发布到服务器,因此它会在新选项卡中显示为空白页。

您可以使用与以下代码类似的代码:

<style>
    .hide {
        display:none;
    }
</style>
<script>        
    function postBack() {
        __doPostBack('lnkEditbtn', '');
        return false;
    }
</script>

<asp:LinkButton ID="lnkEditbtn" runat="server" OnClick="lnkEditbtn_Click" Text="Link" CssClass="hide"></asp:LinkButton>
<a href="http://www.google.com" onclick="return postBack();">Link</a>



protected void lnkEditbtn_Click(object sender, EventArgs e)
{
   var linkButton = (Control)sender as LinkButton;
}

使用此代码,您将隐藏链接按钮并改为使用Anchor标记。 右键单击时将调用Anchor标记中的Href。当你点击链接时,&#34; postBack&#34;将触发JS方法,该方法调用链接按钮的服务器端事件处理程序 右键单击和左键单击都可以。