2013-09-05 3 views
0

У меня есть и oBjectDataSource, который получает мою информацию для моего представления сетки.GridView Hyperlink с ID из базы данных

Он показывает всю информацию совершенно с этим, автоматически генерируется:

<asp:BoundField DataField="Name" ItemStyle-Width="250px" HeaderText="Name" SortExpression="Name"> 
      <ItemStyle Width="250px"></ItemStyle> 
     </asp:BoundField> 

Но я хочу, чтобы иметь гиперссылке с поля «Name» как текст и поле «UserID», как В параметре в NavigateURL:

<asp:TemplateField> 
      <ItemTemplate> 
       <asp:HyperLink ID="HyperLink2" NavigateUrl="~/Test.asp?id='<%# Eval("userID") %>'" runat="server"><%# Eval("Name") %></asp:HyperLink> 
      </ItemTemplate> 
     </asp:TemplateField> 

Я получил ошибку здесь ...

что не так?

+0

Я использую кнопку ссылки для этого иногда и Response.redirect и добавляю параметры url в код позади. Мне становится легче, и это дает вам немного больше контроля. – briskovich

ответ

2

Попробуйте это:

<asp:HyperLink ID="HyperLink2" runat="server" NavigateUrl='<%# "~/Test.asp?id="+Eval("userID") %>' Text='<%# Eval("Name") %>'></asp:HyperLink> 
+0

обновите свой ответ –

1

Вы также можете достичь так - проще и проще:

<asp:HyperlinkField DataTextField="Name" 
     DataNavigateUrlFormatString="~/Test.asp?id={0}"  
     DataNavigateUrlFields="userID" 
     /> 
0

Попробуйте это. Похоже, что проблема была в использовании двойных кавычек в Eval («идентификатор пользователя»), что противоречит открытиям двойных кавычек в NavigateURL

<asp:HyperLink ID="HyperLink2" NavigateUrl='~/Test.asp?id=<%# Eval("userID") %>' runat="server"><%# Eval("Name") %></asp:HyperLink> 
0

Добавьте это поле в вашем GridView

В этом примере Id = ContentID

<asp:HyperLinkField DataNavigateUrlFields="ContentId" DataNavigateUrlFormatString="EditContent.aspx?ContentId={0}" Text="Edit" HeaderText="Edit" /> 
Смежные вопросы