2011-01-11 19 views
0

Dies in Bezug auf diese Frage, die ich fragte, aber nie beantwortet wurde ASP.NET 4 ACCESS DATA TO APPLY TO NavigateUrl aber angenommen, das ist jetzt redundant.Generieren Sie URLs aus dem Datenbankcode hinter

Ich brauche dynamische URLs aus einer Datenbank im Code hinterher und benutze sie dann in einer Listenansicht, aber ich kann nirgends im Internet oder in meinem Buch finden, die so etwas abdeckt.

Im Datum Verwendung von unten in einem Code hinter Seite bekommen:

'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() 

dort zurückgegeben mehrere Datensätze sein und ich muß dann verketten URLs von Feldern in den Daten zu erzeugen, z.B. "Portfolio /" & [id] & "/" & [Kategorie] & "/" & [title] und diese dann mit dem verketteten Text ist die NavigateUrl in einer Listenansicht angezeigt werden:

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

kann jemand helfen oder zumindest ich fing an, wie ich jeden Datensatz auf dem Code hinter der Seite durchlaufen kann, um alle URLs zu generieren, und dann, wie diese auf der tatsächlichen Seite in der Listenansicht angezeigt werden.

Sehr geschätzt,

J.

+0

Können Sie nicht Databound Ereignisse? –

+0

hi, tut mir leid, ich bin sehr neu in .net und lehre mich gerade selbst, deshalb kämpfe ich, also weiß nicht wirklich was du meinst .... sorry. – JBoom

+0

Ich sehe, dass meine Listview an die Daten gebunden ist, mache ich nur das gleiche für die ID meiner Asp: HyperLink ?? Jedes Beispiel wäre sehr hilfreich. – JBoom

Antwort

1

Sie konnten die NavigateUrl Eigentum auf Ihrer HyperLink zu so etwas wie dieses aktualisieren:

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

Ich fand das gestern spät nachmittag heraus, aber danke für die Antwort, es schien die doppelten Anführungszeichen NavigateUrl = "" die ich benutzte, verursachten das Problem, obwohl ich noch nicht herausgefunden habe warum! – JBoom

Verwandte Themen