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



我正在一个用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列,其中包含一个主键和一个外键,10个图像列,当前日期,视频等。所有 10 个映像都是从单个 id 调用的。

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

中继器中的代码如下。.

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();
          }
    }

在循环中,它抛出并仅显示最后一个图像,因为它从数据库的单个 ID 调用。

因此,任何人都建议我如何更改代码并从数据库的单个ID获取中继器控件中的所有10个图像。

我认为

您可以将文字放入中继器而不是图像控件中。

<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();
}

最新更新