图像控制从静态变为动态

时间:2014-10-24 06:26:19

标签: c# asp.net for-loop foreach

我有6个Image控件,通过数据库中的URL从文件夹中获取图像。重点是我静静地做。我想通过使用for循环或每个循环将其更改为动态,但我不知道如何做到这一点。将来如果数字图像控件增加,则很难静态地指定每一个。

我正在使用asp Image标签。

到目前为止,代码在静态下运行良好,但我希望它使用一些循环使其动态化。

到目前为止我尝试过的代码:

protected void Page_Load(object sender, EventArgs e)
    {
        using (Property_dbDataContext context = new Property_dbDataContext())
        {
            var strURL = context.retrieveImage()
                    .Select(s => s.image_url)
                    .ToList();

            Image1.ImageUrl = strURL[0];
            Image2.ImageUrl = strURL[1];
            Image3.ImageUrl = strURL[2];
            Image4.ImageUrl = strURL[3];
            Image5.ImageUrl = strURL[4];
            Image6.ImageUrl = strURL[5];
        }
    }

1 个答案:

答案 0 :(得分:2)

你可以使用转发器控制:

<asp:Repeater ID="rptImageList" runat="server">
    <ItemTemplate>
        <asp:Image runat="server" ImageUrl="<%# Container.DataItem %>" />
    </ItemTemplate>
</asp:Repeater>
代码背后的代码:

protected void Page_Load(object sender, EventArgs e)
{
    using (Property_dbDataContext context = new Property_dbDataContext())
    {
        var strURL = context.retrieveImage()
                .Select(s => s.image_url)
                .ToList();
        rptImageList.DataSource = strURL;
        rptImageList.DataBind();            
    }
}