asp.net GridView中超链接的使用(带参数)

在GridView中,点击链接列跳转到指定页面的实现代码,需要的朋友可以参考下。

方法1.使用<a>标签,
前台:

复制代码 代码如下:


<a href='<%# "OrigImageShow.aspx?id=1&image_id="+Eval("ID")%>' runat="server" target="_blank">&nbsp;&nbsp;弹出&nbsp;&nbsp;</a>
<a href='Javascript:alert("<%# OrigImageShow.aspx?image_id=" + Eval("ID")%>")'>弹出</a>


使用<a>标签,不刷新主页面
方法2.:asp:HyperLink
(1)前台:<asp:HyperLink runat="server" Text='<%# Eval("OperationFlag") %>' Target="_blank" ></asp:HyperLink>
后台绑定路径:

复制代码 代码如下:


protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
  if (e.Row.RowType == DataControlRowType.DataRow)
{
   HyperLink btnlink = (HyperLink)e.Row.Cells[3].FindControl("hyperLink");
HiddenField hidderid = (HiddenField)e.Row.Cells[3].FindControl("log_id");//通过隐藏域获取要传递的参数
string url = string.Empty;
if (hidderid != null)
{
url = "~/ImageManage/LogPicDetails.aspx?id=" + hidderid.Value;
btnlink.NavigateUrl = url;
}
}
}


(2)<asp:HyperLink runat="server" NavigateUrl='<%# "OrigImageShow.aspx?image_id=" + Eval("ID")%>'
Text="弹出" Target="_blank"></asp:HyperLink>
使用asp:HyperLink ,弹出页面不刷新主页面
方法3.asp:LinkButton
(1) 前台:<asp:LinkButton runat="server" Text="弹出" OnClientClick=<%#"window.open('OrigImageShow.aspx?image_id="+Eval("id")+"')" %> ></asp:LinkButton>
(2) 前台:<asp:LinkButton runat="server" Text="弹出" CommandArgument='<%#Bind("ID") %>' ></asp:LinkButton>

复制代码 代码如下:


protected void LB_Ori_Click(object sender, EventArgs e)
{
LinkButton lbtn = (LinkButton)sender;
int imgID = int.Parse(lbtn.CommandArgument.ToString());
string url = "OrigImageShow.aspx?image_id=" + imgID;
url = Page.ResolveUrl(url);
Page.ClientScript.RegisterStartupScript(Page.GetType(), "messid", "<script language='javascript'>window.open('" + url + "');</script>");
}


使用asp:LinkButton,弹出页面后刷新主页面
综上所述:推荐使用HyperLink或者a的方式

您可能感兴趣的文章:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wjjfxf.html