在新标签页中打开 asp LinkButton
Open asp LinkButton in a new tab
我的 gridview 中有一个按钮,当用户单击它时,它会转到页面。但是,如果您右键单击它并 "open link in a new tab" 它会转到一个空白页面。我想要它,所以当用户右键单击它并 "open link 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 被加密,请先创建一个 class
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 >
服务器端的 Link 按钮呈现给客户端的 Hyperlink,'href' 作为 href="javascript:__doPostBack('lnkEditbtn','')
,这只不过是从link 按钮。因此,当您右键单击并在新选项卡中打开 link 时,它会发布到服务器,因此在新选项卡中显示为空白页。
您可以使用类似于以下代码的代码:
<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;
}
使用此代码,您将隐藏 link 按钮并改用锚标记。
Anchor 标签中的 href 会在你点击鼠标右键时被调用。当您单击 link 时,将触发 "postBack" JS 方法调用 Link 按钮的服务器端事件处理程序。
通过右键单击和左键单击都可以。
我的 gridview 中有一个按钮,当用户单击它时,它会转到页面。但是,如果您右键单击它并 "open link in a new tab" 它会转到一个空白页面。我想要它,所以当用户右键单击它并 "open link 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 被加密,请先创建一个 class
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 >
Link 按钮呈现给客户端的 Hyperlink,'href' 作为 href="javascript:__doPostBack('lnkEditbtn','')
,这只不过是从link 按钮。因此,当您右键单击并在新选项卡中打开 link 时,它会发布到服务器,因此在新选项卡中显示为空白页。
您可以使用类似于以下代码的代码:
<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;
}
使用此代码,您将隐藏 link 按钮并改用锚标记。
Anchor 标签中的 href 会在你点击鼠标右键时被调用。当您单击 link 时,将触发 "postBack" JS 方法调用 Link 按钮的服务器端事件处理程序。
通过右键单击和左键单击都可以。