从后面的数据库代码生成URL

时间:2011-01-11 12:41:23

标签: asp.net vb.net asp.net-4.0 vb.net-2010

这是我提出的问题的答案,但从来没有得到答案ASP.NET 4 ACCESS DATA TO APPLY TO 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,例如“投资组合/”& [id]& “/”& [类别]& “/”& [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>

任何人都可以帮助或至少让我开始如何遍历代码隐藏页面上的每条记录以生成所有网址,然后如何在列表视图中的实际页面上显示这些网址。

非常感谢,

学家

1 个答案:

答案 0 :(得分:1)

您可以将HyperLink上的NavigateUrl属性更新为:

<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="">