C#中的GridView HyperLink字段

看一下下面的代码:

 

它只需要名称id即可导航到下一页。 我将如何包含不在gridview中的其他两个参数。 导航URL使用必须采用gridview中已存在的关键字和数据库表中的其他两个参数。 我尝试使用所有这些代码。 没有什么对我有用。

   

我不能使用上面的代码,因为州和城市不在gridview中,但在我的数据表中可用。

我也尝试使用以下代码,但它不起作用

    <asp:HyperLink ID="link" runat="server" NavigateUrl='' Text=''>  

我也尝试过这个,

  <asp:HyperLink ID="Link1" runat="Server" NavigateUrl='' Text=''> .aspx.cs return "KeywordSrchSumDtl.aspx?Keyword=" + //I DONNO HOW TO CALL THE KEYWORD HERE// + "&State=" + System.Web.HttpContext.Current.Request.QueryString["State"] + "&City=" + System.Web.HttpContext.Current.Request.QueryString["City"]; 

我Donno怎么解决这个..请帮我解决这个问题。 谢谢。

使用DataNavigateUrlFields属性,逗号分隔值以及"KeywordSrchSumDtl.aspx?Keyword={0}&State={1}&City={2}"参数的字段

  

几个例子:

在.NET 2.0 Grid-View的超链接字段中的DataNavigateUrlFormatString中传递两个参数

使用ASP.NET将多个值从GridView传递到另一个页面

编辑:

GridView RowDataBound事件中设置HyperLink的NavigateUrl

       .......  

代码背后:

 protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { HyperLink hl = (HyperLink)e.Row.FindControl("link"); if (hl != null) { DataRowView drv = (DataRowView)e.Row.DataItem; string keyword = drv["Keyword"].ToString(); string state = Request.QueryString["State"]; string city = Request.QueryString["City"]; hl.NavigateUrl = "~/KeywordSrchSumDtl.aspx?Keyword=" + keyword + "&State=" + Server.UrlEncode(state) + "&City=" + Server.UrlEncode(city); } } } 

您可以尝试使用string.Format方法

 NavigateUrl='<%# String.Format("KeywordSrchSumDtl.aspx?Keyword={0}&State={1}&City={2}", DataBinder.Eval(Container.DataItem, "Keyword"), Request.QueryString["State"], Request.QueryString["City"]) %>' 

您可以使用string []从Code Behind初始化DataNavigateUrlFields

最后,通过以下代码导航,

 protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { HyperLink hl = (HyperLink)e.Row.FindControl("Link"); if (hl != null) { DataRowView drv = (DataRowView)e.Row.DataItem; string keyword = drv["Keyword"].ToString().Trim(); string state = strState.ToString().Trim(); string city = strCity.ToString().Trim(); hl.NavigateUrl = "KeywordSrchSumDtl.aspx?Keyword=" + keyword + "&Geo=" + geo + "&Site=" + site; } } } 

谢谢你们的帮助。

 Some time we need to pass multiple parameters with hyperlink in Gridview, datagrid or any data list control then we can use following code:- **CODE:-**       **JavaScript Function** function ShowACP(id, acplabel) { if (acplabel == "No") { window.location = "#"; } else window.location = "Default.aspx?gid=" + id; }