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_Variable. 如何将该变量My_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

你真的没有代码隐藏中的数据库代码吗?这只是一个例子?您的网站将在五分钟内被黑...

My_Variable 必须声明为字段而不是函数中的局部变量。数据绑定也看不到私有字段。

哦,现在我看到您需要更改每个项目的变量,对吗?

我建议您创建一个数据对象来包含来自 db 的数据,并在每个对象上设置所有相关数据,然后在列表中绑定中继器。我意识到我应该在这里展示一些代码,但是我上次写 vb 已经 2 年了,所以无论如何它都会非常不准确。

于 2009-04-27T09:38:41.923 回答
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>
于 2009-04-27T14:22:21.040 回答
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 回答