2011-01-11 64 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="">