簡體   English   中英

在新標簽頁中打開asp LinkBut​​ton

[英]Open asp LinkButton in a new tab

我的網格視圖中有一個按鈕,當用戶單擊它時,它會轉到頁面。 但是,如果右鍵單擊它並“在新選項卡中打開鏈接”,它將進入空白頁。 我想要這樣,當用戶右鍵單擊它並“在新選項卡中打開鏈接”以轉到頁面時。 這是我到目前為止的代碼:

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());
}

您無法使用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 > 

服務器端的鏈接按鈕通過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。 並且當您單擊鏈接時,將觸發“ postBack” JS方法,該方法調用“鏈接按鈕”的服務器端事件處理程序。
右鍵單擊和左鍵單擊均起作用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM