Генерация URL-адресов из кода базы данных - PullRequest
0 голосов
/ 11 января 2011

Это относится к этому вопросу, который я задал, но так и не получил ответа ASP.NET 4 ДАННЫЕ ДОСТУПА ДЛЯ ПРИМЕНЕНИЯ К NavigateUrl , но предположим, что сейчас это избыточно.

Мне нужно сгенерировать динамические URL-адреса из базы данных в коде, а затем использовать их в виде списка, но я не могу найти нигде в Интернете или в своей книге, которая описывает что-то вроде этого.

Я вывожу данные, используя ниже код на странице:

    'portfolio navigation data
    Dim rdrPortfolioNav As SqlDataReader

    Dim cmdPortfolioNav As SqlCommand = New SqlCommand()
    cmdPortfolioNav.CommandText = "SELECT TOP 6 [id], [date], [client], [category], [title], [body], [website], [navimage], [navdesc] FROM [portfolio] ORDER BY [date] DESC"
    cmdPortfolioNav.CommandType = CommandType.Text
    cmdPortfolioNav.Connection = boomSQL

    cmdPortfolioNav.Connection.Open()
    rdrPortfolioNav = cmdPortfolioNav.ExecuteReader(CommandBehavior.CloseConnection)

    lvPortfolioNav.DataSource = rdrPortfolioNav
    lvPortfolioNav.DataBind()

    cmdPortfolioNav.Dispose()

будет возвращено несколько записей, и мне нужно затем объединить для создания URL-адресов из полей в данных, например, "portfolio /" & [id] & "/" & [category] & "/" & [title], а затем отображать их в виде списка с объединенным текстом, являющимся NavigateUrl:

<asp:ListView ID="lvPortfolioNav" runat="server">
                    <ItemTemplate>
                    <div class="work">
                        <asp:HyperLink runat="server" NavigateUrl="" ToolTip=""><span class="title"><%# DataBinder.Eval(Container.DataItem, "title")%></span></asp:HyperLink>
                        <asp:Image runat="server" ImageUrl="<%# DataBinder.Eval(Container.DataItem, &quot;navimage&quot;)%>" AlternateText="<%# DataBinder.Eval(Container.DataItem, &quot;client&quot;)%>" ToolTip="<%# DataBinder.Eval(Container.DataItem, &quot;client&quot;)%>" />
                        <span class="desc"><%# DataBinder.Eval(Container.DataItem, "navdesc")%></span>
                    </div>

                    </ItemTemplate>
                </asp:ListView>

Может ли кто-нибудь помочь или, по крайней мере, дать мне понять, как перебрать каждую запись в коде за страницей, чтобы сгенерировать все URL, а затем показать, как их отобразить на реальной странице в представлении списка.

Очень ценится,

J.

1 Ответ

1 голос
/ 11 января 2011

Вы можете обновить свойство NavigateUrl в HyperLink до следующего вида:

<asp:HyperLink runat="server" NavigateUrl='<%# String.Format("portfolio/{0}/{1}/{2}", DataBinder.Eval(Container.DataItem, "id"), DataBinder.Eval(Container.DataItem, "category"), DataBinder.Eval(Container.DataItem, "title")) %>' ToolTip="">
...