Sam*_*Sam 9 c# gridview hyperlink
看一下下面的代码:
<asp:HyperLinkField
DataNavigateUrlFields="NameID"
DataNavigateUrlFormatString="names.aspx?nameid={0}"
DataTextField="name"
HeaderText="Name"
ItemStyle-Width="100px"
ItemStyle-Wrap="true" />
Run Code Online (Sandbox Code Playgroud)
它只需要名称id即可导航到下一页.我将如何包含不在gridview中的其他两个参数.导航URL使用必须采用gridview中已存在的关键字和数据库表中的其他两个参数.我尝试使用所有这些代码.没有什么对我有用.
<asp:HyperLinkField DataTextField="Keyword" DataNavigateUrlFields="Keyword"
DataNavigateUrlFormatString="KeywordSrchSumDtl.aspx?Keyword={0}&State={1}&City={2}"
HeaderStyle-VerticalAlign="Bottom" ItemStyle-HorizontalAlign="center" />
Run Code Online (Sandbox Code Playgroud)
我不能使用上面的代码,因为州和城市不在gridview中,但在我的数据表中可用.
我也尝试使用以下代码,但它不起作用
<asp:TemplateField HeaderText="Keyword" ItemStyle-HorizontalAlign="Center" FooterStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:HyperLink ID="link" runat="server" NavigateUrl='<% # "KeywordSrchSumDtl.aspx?Keyword="Eval("Keyword")+"&State="+Request.QueryString["State"]%>' Text='<%# Eval("Keyword") %>'>
</asp:HyperLink>
</ItemTemplate>
</asp:TemplateField>
Run Code Online (Sandbox Code Playgroud)
我也尝试过这个,
<asp:HyperLink ID="Link1" runat="Server" NavigateUrl='<%#redirectURL()+Server.UrlEncode((Eval("Keyword")).ToString())%>' Text='<%# DataBinder.Eval(Container.DataItem,"Keyword") %>'>
</asp:HyperLink>
</ItemTemplate>
</asp:TemplateField>
Run Code Online (Sandbox Code Playgroud)
我Donno怎么解决这个..请帮我解决这个问题.谢谢.
chr*_*dam 18
使用DataNavigateUrlFields
属性,逗号分隔值和参数字段"KeywordSrchSumDtl.aspx?Keyword={0}&State={1}&City={2}"
<asp:HyperLinkField DataNavigateUrlFields="Keyword,State,City"
DataNavigateUrlFormatString="KeywordSrchSumDtl.aspx?Keyword={0}&State={1}&City={2}"
Text="View Details" />
Run Code Online (Sandbox Code Playgroud)
几个例子:
在.NET 2.0 Grid-View的超链接字段中的DataNavigateUrlFormatString中传递两个参数
使用ASP.NET将多个值从GridView传递到另一个页面
编辑:
一组NavigateUrl
HyperLink RowDataBound
发生的事件GridView
<asp:GridView ID="GridView1" runat="server"
AutoGenerateColumns="False"
DataKeyNames="Keyword"
DataSourceID="SqlDataSource1"
onrowdatabound="GridView1_RowDataBound">
<asp:TemplateField HeaderText="Keyword" ItemStyle-HorizontalAlign="Center" FooterStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:HyperLink ID="link" runat="server" Text='<%# Eval("Keyword") %>' />
</ItemTemplate>
</asp:TemplateField>
.......
</asp:GridView>
Run Code Online (Sandbox Code Playgroud)
代码背后:
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);
}
}
}
Run Code Online (Sandbox Code Playgroud)