[英]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.