我正在开发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
假设该字段只有一个图像名称意味着它将显示在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
但如果多个逗号分隔,如何显示多个图像。
tmp_IMG_20170522_083327-596532566.jpg,tmp_IMG_20170522_0839271082156791.jpg
答案 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>