2009-04-26 57 views
1

這是我的直放站從我的代碼放置一個變量背後Repeater控件中的NavigateUrl

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

這是我在頁面加載

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

背後代碼現在,我有一個名爲My_Variable變量。我如何在上面的Repeater中放置變量My_Variable

回答

0

您需要創建它例如返回字符串受保護的方法:

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

您可以生成此方法的HTML鏈接。 並在你的中繼器只需要綁定它的方法。

<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

請檢閱我更新的代碼:我實際上需要更改圖片網址......... – Etienne 2009-04-26 12:21:20

2

這樣可以綁定您的變量來中繼器:

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

編輯:您使用不需要是服務器控件靜態控件。所以,你可以使用HTML元素的Response.Write您這樣的全局變量:

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

請檢查我的更新代碼:我實際上需要更改圖片網址...... ... – Etienne 2009-04-26 12:19:13

+0

不,不工作..... – Etienne 2009-04-26 17:38:28

1

你是不是真的有隱藏代碼右邊的DB-代碼?這僅僅是一個例子? 您的網站將在五分鐘內被黑客攻擊...

My_Variable必須聲明爲一個字段而不是函數中的局部變量。此外,數據綁定不能看到私人領域。

哦現在我看到你需要改變每個項目上的變量吧?

我建議你創建一個數據對象來包含來自數據庫的數據,並在每個對象上設置所有相關數據,然後將數據綁定列表上的中繼器。我意識到我應該在這裏展示一些代碼,但是這是2年來我最後寫了vb,所以它無論如何都會是非常不準確的。

+0

你在代碼隱藏中的db代碼是什麼意思?如果你在問什麼,我不使用我的實際表名和值? – Etienne 2009-04-27 16:21:51

1

要設置圖片url,您必須使用數據綁定表達式。此外,您需要將您的變量「My_Variable」設置爲公共類成員。

<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> 
相關問題