在Asp.Net中的转发器控件中显示多个图像

时间:2013-11-13 06:42:19

标签: c# asp.net sql-server

我正在N Tire应用程序中设计的项目中工作。 在项目内部, 我的页面中有一个转发器控件。 我有一个锚标签&在里面,我称之为图像。代码如下..

<a id="ancher" runat="server" rel="example_group" title="">
<asp:Image ID="imgvideo" runat="server" width="90" height="80" border="1" />
</a>

在DAL内部,我从数据库中调用。

在数据库中,我有15列,其中包含主键和&amp;一个外键,10个图像列,当前日期,视频&amp;等等 所有10个图像都是从一个id中调用的。

当我从后面的代码调用这些图像时,它只显示1个图像,这是数据库中的第10个位置。它拍摄最后一张图片并仅显示该图片。

Repeater中的代码如下..

DataTable dt = new DataTable();
DAL.DAL_UploadImgVideo obj = new DAL_UploadImgVideo();
dt = obj.ImgVideoFetchDetails(ID);
  if (dt.Rows.Count > 0)
    {
       for (int i = 2; i < dt.Columns.Count - 3; i++)
          {
            Image M1 = new Image();
            M1 = ((Image)e.Item.FindControl("imgvideo"));
            string Cname = dt.Columns[i].ToString();
            string FImg = dt.Rows[0][Cname].ToString();
            M1.ImageUrl = "JO_Images/UpdImgVideo/" + FImg.ToString();
          }
    }

在循环内部它扔掉了&amp;仅显示最后一个图像,因为它从单个数据库ID调用。

所以任何人都建议我如何更改代码&amp;从单个数据库ID获取我的转发器控件中的所有10个图像。

1 个答案:

答案 0 :(得分:0)

我认为您可以将Literal放入Repeater而不是Image控件。

<asp:Literal ID="ltrImage" runat="server">
DataTable dt = new DataTable();
DAL.DAL_UploadImgVideo obj = new DAL_UploadImgVideo();
dt = obj.ImgVideoFetchDetails(ID);
if (dt.Rows.Count > 0)
{
    var imgFormat = "<image src='JO_Images/UpdImgVideo/{0}' />";
    var imgStr = new StringBuilder();
    for (int i = 2; i < dt.Columns.Count - 3; i++)
    {
        string Cname = dt.Columns[i].ToString();
        string FImg = dt.Rows[0][Cname].ToString();
        imgStr.Append(string.Format(imgFormat, Fimg));
    }
    var ltrImg = ((Literal)e.Item.FindControl("ltrImage"));
    ltrImg.Text = imgStr.ToString();
}