Announcement

Collapse
No announcement yet.

Pfad aus Datenbank in Hyperlink verwandeln

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Pfad aus Datenbank in Hyperlink verwandeln

    Hallo,

    aus einer Datenbank kann ich z.B. den Pfad (Datenbankfeld als Text) zu einer pdf-Datei auslesen. Neben anderen Feldern wird der Pfad auch schön als Text in einem Gridview angezeigt.

    Voran ich jetzt scheitere ist, das ich den Pfad in einem klickbaren Hyperlink verwandeln möche.

    Bin für jeden kleinen Code dankbar.

    Mfg, Franz

  • #2
    Code:
    <asp:GridView ID="gv" runat="server">
            <Columns>
                <asp:TemplateField>
                    <ItemTemplate>
                        <asp:HyperLink ID="lnk" NavigateUrl="<% #Eval('URL') %>" runat="server">Link</asp:HyperLink><br />
                   </ItemTemplate>
                </asp:TemplateField>
            </Columns>
     </asp:GridView>
    Bitte vergessen Sie nicht die Antwort zu bewerten. Danke.:-)

    Comment


    • #3
      Hallo MCPD, MCTS, MCP vadym voytas,

      vielen Dank für den Code. Werde ich demnächst ausprobieren.

      Mfg, Franz

      PS: Interessanter Name.

      Comment


      • #4
        Hallo vadym,
        ich bekomme einen Fehler in der Zeile
        <asp:HyperLink ID="lnk" NavigateUrl="<% #Eval('URL') %>" runat="server">Link</asp:HyperLink><br />

        Kompilierungsfehler
        Beschreibung: Fehler bei der Kompilierung einer Ressource, die zur Verarbeitung dieser Anforderung erforderlich ist. Überprüfen Sie die folgenden spezifischen Fehlerdetails, und ändern Sie den Quellcode entsprechend.

        Compilerfehlermeldung: BC30201: Ausdruck erwartet.

        Ich hab mal im Netz zu eval gesucht.Leider kann ich nicht sagen, ob ich 'URL' durch was anderes ersetzen soll. Ich lese per sql aus einer Datenbank in ein Dataset ein. Zu Testzwecken nur ein Feld mit dem Namen Datasheet. Das Dataset binde ich per Datasource und bind an das Gridview, Gebe ich es in einem Gridview aus, ist alles in Ordnung (ohne Hyperlink natürlich), Ersetze ich das mit deinem Code bekomme ich obigen Fehler.

        Für jeden Hinweis bin ich dankbar.

        Mfg, Franz

        PS: Geht das auch ohne Javascript?

        Comment


        • #5
          Originally posted by hate_sql View Post
          Leider kann ich nicht sagen, ob ich 'URL' durch was anderes ersetzen soll.

          Ich lese per sql aus einer Datenbank in ein Dataset ein. Zu Testzwecken nur ein Feld mit dem Namen Datasheet.
          Anstatt 'URL' sollte Name deiner DataSet-Spalte stehen, in deinem Fall , so wie ich verstanden habe, 'Datasheet'.

          PS: Geht das auch ohne Javascript?
          Das ist kein JavaScript, also Ja. :-)
          Zuletzt editiert von vadym voytas; 18.01.2011, 08:16.
          Bitte vergessen Sie nicht die Antwort zu bewerten. Danke.:-)

          Comment


          • #6
            Hallo vadym,

            natürlich hast du recht. Richtigerweise sollte es heissen embedded code.

            Allerdings beibe ich bei der gleichen Fehlermeldung hängen:

            <asp:HyperLink ID="lnk" NavigateUrl="<% #Eval('Datasheet') %>" runat="server">Link</asp:HyperLink><br />

            Kompilierungsfehler
            Beschreibung: Fehler bei der Kompilierung einer Ressource, die zur Verarbeitung dieser Anforderung erforderlich ist. Überprüfen Sie die folgenden spezifischen Fehlerdetails, und ändern Sie den Quellcode entsprechend.

            Compilerfehlermeldung: BC30201: Ausdruck erwartet.

            Ich habe einige Schreibvarianten durchprobiert, z.B <%# Eval..., aber keinen Erfolg gehabt.

            Die Zuordnung der Dataset zu dem Gridview findet im Protected Sub Page_load(... statt. Interesanterweise funktioniert der Code, wenn ich statt eval den Pfad für Navigateurl hart codiere. Interessant auch deshalb, da ich im Page_load mir für Debuggibzwecke in eine Msg eine Daten ausgeben lasse. Bei harter Codierung bekomme ich die Box angezeigt, bei der Eval-Variante kommt nicht einmal die Box hoch. Muss ich in der Reihenfolge etwas beachten?

            Bin für jeden Hinweis dankbar, da so kleine Nicklichkeoit unglaublich viel Zeit kosten.

            Dank im voraus, Franz

            PS wg embedded Code: lässt sich der Teil mit Eval in die Codebehind verlagern?

            Comment


            • #7
              Hallo vadym,

              Problem war das autogenerateColumns für das Gridview nicht gesetzt war (entsprechend true). Entsprechend hat er nach der Zuweisung des Datasets neue Spalten angehängt. Hätte mir gestern spätestens bei der hardcodierten Variante auffallen müssen, das da eine Spalte zuviel ist. Trotzdem erstaunlich das der Fehler auftritt, bevor ich mir einige Daten als Msg habe ausgeben lassen, obwohl das binden des Datasets an das Gridview deutlich später stattfindet.

              Vielen Dank für den Code. Muss später noch alles in den Codebehind auslagern und gut ist. Leider habe ich bisher noch kein guteds Beispiel für das Auslagern in den Codebehing von Templatesfields gefunden.

              Mfg, Franz

              Comment


              • #8
                Hoffentlich letztes Update.

                Nachdem sich kurze Zeitspäter wieder die gleichen Probleme aufgetaucht sind, habe ich den Rechner runtergefahren und was anderes gemacht. Später wieder den Rechner hochgefahren und siehe da, es funktioniert, wie es soll.

                Thats life, Franz

                Comment

                Working...
                X