2011-01-11 51 views
0

这在参考我问这个问题,但从来没有得到答案ASP.NET 4 ACCESS DATA TO APPLY TO NavigateUrl但假设现在是多余的。从后面的数据库代码生成URL

我需要从代码后面的数据库中生成动态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] & “/” &【类别】& “/” & [标题],然后在列表视图与所串接文本为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.

+0

你不能使用数据绑定的事件? – 2011-01-11 12:46:30

+0

嗨,对不起,我对.net很陌生,现在正在教我自己,这就是为什么我在挣扎,所以真的不知道你的意思....对不起。 – JBoom 2011-01-11 12:52:21

回答

1

你可以更新这样的超链接的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="">