我的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());
}
答案 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方法,该方法调用链接按钮的服务器端事件处理程序 右键单击和左键单击都可以。