如何在Asp.Net中的DataList中显示逗号分隔的图像?

时间:2017-06-12 06:42:18

标签: c# asp.net image datalist

我正在开发asp.net c#应用程序,因为我有一个场景,用于在DataList中显示逗号分隔的图像,如下面的图像名称 在 image_url 字段

tmp_IMG_20170522_0837451077517149.jpg, tmp_IMG_20170522_083635-993558832.jpg, tmp_IMG_20170522_083327-596532566.jpg,tmp_IMG_20170522_0839271082156791.jpg, tmp_IMG_20170522_092501-744906076.jpg, tmp_IMG_20170522_084036-2041074160.jpg, tmp_IMG_20170522_091330-34718281.jpg, tmp_IMG_20170522_092627-1388224780.jpg, tmp_IMG_20170522_082648-859515701.jpg,tmp_IMG_20170522_083853-597136928.jpg

enter image description here

假设该字段只有一个图像名称意味着它将显示在DataList中,

但我不知道如何在DataList中显示逗号分隔的图像, 请任何一个帮助需要。

Asp.Net:

<asp:DataList ID="DLImages" RepeatColumns="2" runat="server">
  <ItemTemplate>
     <div id='gallery'>
        <a href='<%# Eval("image_url","../Uploads/App_Images/{0}")%>'>
          <img src='<%# Eval("image_url","../Uploads/App_Images/{0}") %>' width="200" height="200" />
        </a>
     </div>
 </ItemTemplate>
</asp:DataList>

C#:

private void FillDataList()
    {
        try
        {
            bolImages.ID=Convert.ToInt32(Request.QueryString["ID"].ToString());
            DataSet dsImages = new DataSet();
            dsImages = bolImages.SelectImagesByID();

            if (dsImages.Tables[0].Rows.Count > 0)
            {
                DLImages.DataSource = dsImages;
                DLImages.DataBind();
            }
            else
            {

            }
        }
        catch (Exception ex)
        {
            ScriptManager.RegisterStartupScript(this, GetType(), "Error Message", "alert('" + ex.Message.ToString() + "')", true);
        }
    }

查询:

public DataSet SelectImagesByID()
    {
        try
        {
         Squery = @"select image_url from BMTEST..Images WHERE ID='" + ID + "';
         return dal.DBRead(Squery);
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }

示例:

如果image_url如下,则显示一个图像:

tmp_IMG_20170522_0837451077517149.jpg

enter image description here

但如果多个逗号分隔,如何显示多个图像。

tmp_IMG_20170522_083327-596532566.jpg,tmp_IMG_20170522_0839271082156791.jpg

4 个答案:

答案 0 :(得分:1)

请你这样试试,让我知道它是怎么来的:

<div id='gallery'>
    <a href='<%# string.Format("../Uploads/App_Images/{0}", Eval("image_url"))%>'>
         <img src='<%# string.Format("../Uploads/App_Images/{0}", Eval("image_url"))%>' width="200" height="200" />
     </a>
</div>

根据评论,很明显该行包含逗号分隔值,您需要将这些值作为数据源而不是行,因此您需要更改DataSource,如下所示:

if (dsImages.Tables[0].Rows.Count > 0)
{
    int rowNumber = 0;
    DLImages.DataSource = dsImages.Tables[0][rowNumber]["image_url"].Split(',').ToList();
    DLImages.DataBind();
}

答案 1 :(得分:1)

试试这个:

        dsImages = bolImages.SelectImagesByID();

        if (dsImages.Tables[0].Rows.Count > 0)
        {

            string[] values = dsImages.Split(',');
            for (int i = 0; i < values.Length; i++)
            {
              values[i] = values[i].Trim();
            }
            var newdsImages = values.ToList();
            DLImages.DataSource = newdsImages ;
            DLImages.DataBind();
        }

答案 2 :(得分:0)

我认为您需要在将逗号分隔的图像路径加载到数据集

之前对其进行拆分
DLImages.DataSource = dsImages;

这里dsImages应该像

dsImages.Split[','];

答案 3 :(得分:-1)

$ split --lines=10000 --numeric-suffixes <original file> <prefix for split files>