1

私のリピーターです

<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_VariableMy_Variable上記のリピーター内にその変数を配置するにはどうすればよいですか?

4

4 に答える 4

2

このようにして、変数を repeater にバインドできます。

<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 %>' />
于 2009-04-26T11:04:25.253 に答える
1

あなたは本当にコードビハインドにdbコードを持っていませんか?これは単なる例ですか?あなたのサイトは 5 分以内にハッキングされます...

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

ああ、すべてのアイテムの変数を変更する必要があることがわかりましたよね?

データベースからのデータを含むデータオブジェクトを作成し、各オブジェクトに関連するすべてのデータを設定してから、リストのリピーターをデータバインドすることをお勧めします。ここでいくつかのコードを表示する必要があることはわかっていますが、最後に vb を書いたのは 2 年なので、とにかく非常に不正確です。

于 2009-04-27T09:38:41.923 に答える
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 /> 
于 2009-04-26T11:04:06.360 に答える