c#
  • asp.net
  • vb.net
  • repeater
  • 2009-04-26 5 views 1 likes 
    1

    Das ist mein Repeatereine Variable aus meinem Code hinter innerhalb Repeater-Steuerung für NavigateUrl Platzierung

    <asp:Repeater ID="blogRepeater" runat="server"> 
           <ItemTemplate> 
           <br />  
            <asp:Image ID="Image1" runat="server" Height="56px" ImageUrl='<%= string.Format(My_Variable) %>' Width="64px" /> 
            <asp:HyperLink ID="HyperLink2" runat=server NavigateUrl='<%#Eval("Company_ID", "CompanyProfile.aspx?ID={0}")%>'><%#Eval("Name")%></asp:HyperLink> 
            <br /> 
           </ItemTemplate> 
           <SeparatorTemplate> 
            <hr /> 
           </SeparatorTemplate> 
          </asp:Repeater> 
    

    Das ist mein-Code in Seite laden

    ' Define data objects 
         Dim conn As Data.SqlClient.SqlConnection 
         Dim Comm As Data.SqlClient.SqlCommand 
         Dim reader As Data.SqlClient.SqlDataReader 
    
         conn = New Data.SqlClient.SqlConnection(ConfigurationManager.ConnectionStrings("ConnectionString").ConnectionString) 
    
         Comm = New Data.SqlClient.SqlCommand(_ 
         ("SELECT Company_ID, Name FROM CompanyTable ORDER BY Name"), conn) 
    
         Dim My_Variable As String 
    
         My_Variable = "~/createthumb.ashx?gu=/images/Logo.bmp" + "&xmax=75&ymax=75" 
    
         ' Open the connection 
         conn.Open() 
         ' Execute the category command 
         reader = Comm.ExecuteReader() 
    
         ' Bind the reader to the repeater....................... 
         blogRepeater.DataSource = reader 
    
         blogRepeater.DataBind() 
    
         ' Close the reader 
         reader.Close() 
         ' Close the connection 
         conn.Close() 
    

    Jetzt habe ich eine Variable My_Variable genannt hinter ist. Wie kann ich diese Variable My_Variable in meinem Repeater oben platzieren?

    Antwort

    0

    Sie müssen geschützte Methode erstellen, die Zeichenfolge beispielsweise zurückgeben:

    protected string GetCustomString(object MyVariable) 
    { 
        retun string.Format("<a href='{0}'>{0}</a>", MyVaraible.ToString()); 
    } 
    

    Sie können HTML-Link auf dieser Methode erzeugen. und in Ihrem Repeater binden Sie es einfach Methode in Not.

    <asp:Repeater ID="blogRepeater" runat="server"> 
          <ItemTemplate> 
          <%# GetCustomString(Eval("My_Variable")) %> 
    
        <asp:HyperLink ID="HyperLink2" runat=server NavigateUrl='<%#Eval("My_Variable", "CompanyProfile.aspx?ID={0}")%>'><%#Eval("Name")%></asp:HyperLink> 
           <br /> 
    
    +0

    Bitte meinen aktualisiert Code überprüfen: Ich brauche eigentlich die Bild-URL ändern ......... – Etienne

    2

    Auf diese Weise können Sie Ihre Variable Repeater binden können:

    <a href='<%= string.Format("CompanyProfile.aspx?ID={0}", My_Variable) %>'> 
        <%# Eval("Name") %> 
    </a> 
    

    EDIT: Sie verwenden statischen Steuerelemente, die Server-Steuerelemente nicht sein müssen. So können Sie HTML-Elemente und response.write für Ihre globale Variable wie das verwenden:

    <img id="Image1" style="height:56px;width:64px;" src='<%= My_Variable %>' /> 
    
    +0

    Bitte meinen aktualisiert Code überprüfen: Ich brauche eigentlich die Bild-URL ändern ...... ... – Etienne

    +0

    Nein, funktioniert nicht ..... – Etienne

    1

    Sie sind nicht wirklich den DB-Code in Code-Behind-Recht haben? Dies ist nur ein Beispiel? Ihre Website wird innerhalb von fünf Minuten gehackt ...

    My_Variable muss als ein Feld nicht als eine lokale Variable in einer Funktion deklariert werden. Auch Databinding kann private Felder nicht sehen.

    oh jetzt sehe ich, dass Sie die Variable auf jeden Artikel richtig ändern müssen?

    Ich empfehle Ihnen, ein Datenobjekt zu erstellen, das die Daten von db enthält, und alle relevanten Daten für jedes Objekt festzulegen und dann den Repeater in die Liste zu übernehmen. Ich merke, dass ich hier Code zeigen sollte, aber es ist 2 Jahre, dass ich letztens Vb geschrieben habe, also wäre es sowieso sehr ungenau.

    +0

    Was meinst du mit dem db-Code in Codebehind? Ich verwende nicht meine tatsächlichen Tabellennamen und Werte, wenn Sie das fragen? – Etienne

    1

    Um die Bild-URL festzulegen, müssen Sie einen Datenbindungsausdruck verwenden. Außerdem müssen Sie Ihre Variable "My_Variable" zu einem öffentlichen Klassenmitglied machen.

    <asp:Repeater ID="blogRepeater" runat="server"> 
        <ItemTemplate> 
         <br />  
         <asp:Image ID="Image1" runat="server" Height="56px" ImageUrl='<%# My_Variable %>' Width="64px" /> 
         <asp:HyperLink ID="HyperLink2" runat=server NavigateUrl='<%#Eval("Company_ID", "CompanyProfile.aspx?ID={0}")%>'><%#Eval("Name")%></asp:HyperLink> 
         <br /> 
        </ItemTemplate> 
        <SeparatorTemplate> 
         <hr /> 
        </SeparatorTemplate> 
    </asp:Repeater> 
    

     Verwandte Themen

    • Keine verwandten Themen^_^