2009-04-26 6 views
1

用リピータコントロールの内側の後ろに私のコードからの変数を配置する。これは私のリピータである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> 

これは、今、私はMy_Variableという変数を持っているページの読み込みが遅れ

' 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を上記のリピータにどのように置くことができますか?

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

あなたはこの方法でHTMLリンクを生成することができます

答えて

0

は、次の例のように、文字列を返す保護されたメソッドを作成する必要があります。 あなたのリピータでは、それを必要な場所にバインドするだけです。このようにして

<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

2

あなたはリピーターにあなたの変数をバインドすることができます。

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

EDIT:あなたがサーバーコントロールである必要はありません静的なコントロールを使用しています。だから、あなたがそのようなあなたのグローバル変数のためのHTML要素とのResponse.Writeを使用することができます。

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

が私の更新されたコードを確認してください.........画像のURLを変更する必要があります。私は、実際に画像のURLを変更する必要があります...... ... – Etienne

+0

いいえ、うまくいきません..... – Etienne

1

あなたは本当に分離コードの右にDB-コードを持っていないですか?これは例のようなものですか? あなたのサイトは5分以内にハッキングされます...

My_Variableは、関数内のローカル変数ではないフィールドとして宣言する必要があります。また、データバインディングはプライベートフィールドを見ることができません。

オハイオ州私はすべての項目の変数を変更する必要があります参照してください?

dbからのデータを含むデータオブジェクトを作成し、各オブジェクトのすべての関連データを設定し、リスト上のリピータをデータバインドすることをお勧めします。私はここにいくつかのコードを表示する必要があることを実現しますが、それは2年前に私はVBの最後に書きましたので、とにかくそれは大いに不正確になるでしょう。

+0

コードビハインドのdb-codeはどういう意味ですか?それは私が求めている場合は、私は実際のテーブルの名前と値を使用していないですか? – Etienne

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> 
関連する問題