Поле HyperLink в Gridview (URL-навигация) - PullRequest
2 голосов
/ 21 июля 2011

На работе есть 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

Это сеточное представление находится в папке ClientsNames ... но я на самом деле хочу использовать names.aspx папки обслуживания ... поэтому в основном я хочу, чтобы URL перенаправлял, как это

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

Я пыталсядобавить DataNavigateUrlFormatString = "Maintenance / names.aspx? nameid = {0}", но вместо этого он будет создавать URL-адрес, подобный этому

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

Как сделать так, чтобы URL-адрес выглядел так из этого вида сетки?

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

Спасибо

Ответы [ 3 ]

4 голосов
/ 21 июля 2011

Попробуйте установить для DataNavigateUrlFormatString значение ..

  <asp:HyperLinkField      
  DataNavigateUrlFields="NameID"
  DataNavigateUrlFormatString="../maintenance/names.aspx?nameid={0}"
  DataTextField="name"
  HeaderText="Client Name"
  SortExpression="Name"
  ItemStyle-Width="100px"
  ItemStyle-Wrap="true" /> 
1 голос
/ 21 июля 2011

Есть все виды странных префиксов, чтобы попробовать ... У меня нет эталонной ссылки, но вот некоторые:

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)
1 голос
/ 21 июля 2011

Используйте

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

Или вы можете использовать событие GridView.RowDataBound и установить Url программно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...