Gridview中的HyperLink字段(Url导航)

时间:2011-07-20 21:42:45

标签: c# asp.net gridview hyperlink

在工作中有一个gridview,它具有以下语法

  <asp:HyperLinkField 
    DataNavigateUrlFields="NameID" 
    DataNavigateUrlFormatString="names.aspx?nameid={0}"
    DataTextField="name" 
    HeaderText="Client Name" 
    SortExpression="Name" 
    ItemStyle-Width="100px"
    ItemStyle-Wrap="true" />

所以我添加了一行DataNavigateUrlFormatString ...链接显示正常,但地址看起来像这样

http://.....clients/clientNames/names.aspx?nameid=123

此gridview位于ClientsNames文件夹中..但我实际上想要使用维护文件夹的names.aspx ...所以基本上我希望URL像这样重定向

httpL//....clients/Maintenance/names.aspx?nameid=123

我尝试添加DataNavigateUrlFormatString =“Maintenance / names.aspx?nameid = {0}”但是它会像这样创建网址

http://......clients/clientNames/Mainteanance/names.aspx?nameid=123

如何在网格视图中将网址设为这样?

http://.....clients/Maintenance/names.aspx?nameid=123

谢谢

3 个答案:

答案 0 :(得分:4)

尝试将DataNavigateUrlFormatString设置为“../ Maintenance / names.aspx?nameid = {0}”

  <asp:HyperLinkField      
  DataNavigateUrlFields="NameID"
  DataNavigateUrlFormatString="../maintenance/names.aspx?nameid={0}"
  DataTextField="name"
  HeaderText="Client Name"
  SortExpression="Name"
  ItemStyle-Width="100px"
  ItemStyle-Wrap="true" /> 

答案 1 :(得分:1)

使用

DataNavigateUrlFormatString="~/clients/Maintenance/names.aspx?nameid={0}"

或者您可以使用GridView.RowDataBound事件并以编程方式设置Url。

答案 2 :(得分:1)

有各种奇怪的前缀可供尝试......我手边没有参考资料,但这里有一些:

DataNavigateUrlFormatString="~/names.aspx?nameid={0}" (starts at the root)
DataNavigateUrlFormatString="../names.aspx?nameid={0}" (starts in the parent's parent folder)
DataNavigateUrlFormatString="../../names.aspx?nameid={0}" (starts in the parent's parent's parent's folder)