asp.net 中继器不显示图像
Images not displaying with asp.net repeater
我正在尝试用中继器显示文件夹图像中的图片,但无法显示问题图片我不知道为什么。
<div data-u="slides" style="cursor: default; position: relative; top: 0px; left: 0px; width: 800px; height: 356px; overflow: hidden;">
<asp:Repeater runat="server" ID="RepaterImages">
<ItemTemplate>
<div runat="server" data-p="144.50">
<img id="Image" runat="server" data-u="image" style="Width:120px;" src='<%#Container.DataItem %>'/>
</div>
</ItemTemplate>
</asp:Repeater>
</div>
protected void Page_Load(object sender, EventArgs e)
{
int id = Convert.ToInt32(Request.QueryString["id"]);
var path = Server.MapPath("ProjectsImages/ ");
var images = Directory.GetFiles(path,id+"*");
ArrayList list = new ArrayList();
foreach (var img in images)
{
list.Add(img);
}
RepaterImages.DataSource = images;
RepaterImages.DataBind();
}
您错过了回传 属性。请使用下面的代码。
protected void Page_Load(object sender, EventArgs e)
{
if(!IsPostBack)
{
int id = Convert.ToInt32(Request.QueryString["id"]);
var path = Server.MapPath("ProjectsImages/ ");
var images = Directory.GetFiles(path,id+"*");
ArrayList list = new ArrayList();
foreach (var img in images)
{
list.Add(img);
}
RepaterImages.DataSource = list;
RepaterImages.DataBind();
}
}
您的代码存在问题,您使用的是图像的物理路径。您将必须提供中继器的相对路径。如下更改您的代码,我认为它应该可以工作:
protected void Page_Load(object sender, EventArgs e)
{
try
{
int id = Convert.ToInt32(Request.QueryString["id"]);
string relativePath = "/ProjectsImages/";
var path = Server.MapPath(relativePath);
var images = Directory.GetFiles(path, id + "*").Select(x =>
{
var arrPath = x.Split('\');
string imgName = arrPath[arrPath.Length - 1];
return relativePath + imgName;
});
RepaterImages.DataSource = images;
RepaterImages.DataBind();
}
catch (Exception ex)
{
throw ex;
}
}
我正在尝试用中继器显示文件夹图像中的图片,但无法显示问题图片我不知道为什么。
<div data-u="slides" style="cursor: default; position: relative; top: 0px; left: 0px; width: 800px; height: 356px; overflow: hidden;">
<asp:Repeater runat="server" ID="RepaterImages">
<ItemTemplate>
<div runat="server" data-p="144.50">
<img id="Image" runat="server" data-u="image" style="Width:120px;" src='<%#Container.DataItem %>'/>
</div>
</ItemTemplate>
</asp:Repeater>
</div>
protected void Page_Load(object sender, EventArgs e)
{
int id = Convert.ToInt32(Request.QueryString["id"]);
var path = Server.MapPath("ProjectsImages/ ");
var images = Directory.GetFiles(path,id+"*");
ArrayList list = new ArrayList();
foreach (var img in images)
{
list.Add(img);
}
RepaterImages.DataSource = images;
RepaterImages.DataBind();
}
您错过了回传 属性。请使用下面的代码。
protected void Page_Load(object sender, EventArgs e)
{
if(!IsPostBack)
{
int id = Convert.ToInt32(Request.QueryString["id"]);
var path = Server.MapPath("ProjectsImages/ ");
var images = Directory.GetFiles(path,id+"*");
ArrayList list = new ArrayList();
foreach (var img in images)
{
list.Add(img);
}
RepaterImages.DataSource = list;
RepaterImages.DataBind();
}
}
您的代码存在问题,您使用的是图像的物理路径。您将必须提供中继器的相对路径。如下更改您的代码,我认为它应该可以工作:
protected void Page_Load(object sender, EventArgs e)
{
try
{
int id = Convert.ToInt32(Request.QueryString["id"]);
string relativePath = "/ProjectsImages/";
var path = Server.MapPath(relativePath);
var images = Directory.GetFiles(path, id + "*").Select(x =>
{
var arrPath = x.Split('\');
string imgName = arrPath[arrPath.Length - 1];
return relativePath + imgName;
});
RepaterImages.DataSource = images;
RepaterImages.DataBind();
}
catch (Exception ex)
{
throw ex;
}
}