добавление вывода запроса sql в гиперссылку в asp.net

Я думаю, что это, возможно, спрашивали раньше, но я не смог найти правильный ответ, поэтому я спрашиваю здесь. я добавил источник данных, который работает нормально, мне нужна функция, в которой я запрашиваю первые n записей из базы данных и добавляю их с помощью гиперссылки. Думайте об этом как о последних новостях! Разметка для гиперссылки внутри ItemTemplate DataList такова.

 <asp:HyperLink ID="HyperLink1" runat="server" 
                Text='<%# Eval("News_Id") %>' NavigateUrl="~/News.aspx?NewsId=<%#Eval("News_Id") %> " runat="server" /> </asp:HyperLink>

однако я получаю сообщение об ошибке «Ошибка создания элемента управления, тег сервера неправильно сформирован». Он сообщает об ошибке, где размещены кавычки.

Я знаю, что могу использовать свойство datanavigateurl, но я хочу написать его таким образом. как написано в разметке выше. Как я могу?

После перезаписи на

NavigateUrl='~/Product.aspx?DVDID=<%#Eval("Title") %> ' 

я получаю следующее как URL-адрес

http://localhost:61221/Product.aspx?DVDID=‹%#Eval( "Заголовок") %>


person Anirudh Goel    schedule 07.07.2009    source источник
comment
Название этого вопроса определенно вводит в заблуждение. Речь идет о привязке данных, а не о SQL-запросе как таковом.   -  person Cerebrus    schedule 07.07.2009


Ответы (1)


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

<asp:HyperLink ID="HyperLink1" runat="server"
    Text='<%# Eval("News_Id") %>' 
    NavigateUrl='<%#Eval("News_Id", "~/News.aspx?NewsId={0}") %>' 
    runat="server" /> 
</asp:HyperLink>

‹%# Eval() %> должен быть заключен в одинарные кавычки, иначе выдается ошибка.

Чтобы объединить строку в теге привязки, вы можете использовать это:

<%# "~/News.aspx?NewsId=" + Eval("News_Id").ToString() %>
person Canavar    schedule 07.07.2009
comment
после этого я получаю следующее как гиперссылку localhost:61221/ %› не обрабатывает Eval - person Anirudh Goel; 07.07.2009
comment
Обновил мой ответ, попробуйте новый, пожалуйста. - person Canavar; 07.07.2009
comment
я тоже знаю этот метод... я хотел объединить буквальный текст и метод eval. - person Anirudh Goel; 07.07.2009
comment
понял '‹%# ~/News.aspx?NewsId= + Convert.ToString(Eval(id))%›' это работает! Хотя я знаю, что это примитивный способ, и то, что вы предложили, является новым и лучше, чем datanavigateurl. Тем не менее спасибо за помощь. - person Anirudh Goel; 07.07.2009
comment
да, я писал свой новый ответ :) - person Canavar; 07.07.2009