C# 使用asp.net在repeater中绑定图像
在下面的代码中,我有一个中继器,我想将图像从本地驱动器绑定到中继器。但是图像没有绑定,但我可以从本地驱动器获取图像名称。请帮助我解决此问题C# 使用asp.net在repeater中绑定图像,c#,asp.net,C#,Asp.net,在下面的代码中,我有一个中继器,我想将图像从本地驱动器绑定到中继器。但是图像没有绑定,但我可以从本地驱动器获取图像名称。请帮助我解决此问题 string[] filePaths = Directory.GetFiles("D:\\Users\\Images\\Pictures\\"); List<ListItem> files = new List<ListItem>(); foreach (string filePat
string[] filePaths = Directory.GetFiles("D:\\Users\\Images\\Pictures\\");
List<ListItem> files = new List<ListItem>();
foreach (string filePath in filePaths)
{
string fileName = Path.GetFileName(filePath);
files.Add(new ListItem(fileName, @"D:\Users\Images\Pictures\" + fileName)); //i can get image name --D:\Users\Images\Pictures\flight.jpg
}
Repeater1.DataSource = files;
Repeater1.DataBind();
<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
<li>
<img src='<%# DataBinder.Eval(Container.DataItem,"Value") %>' title='<%# (DataBinder.Eval(Container.DataItem,"Text").ToString()).Split('.')[0].ToString() %>' alt=""></li>
</ItemTemplate>
</asp:Repeater>
string[]filepath=Directory.GetFiles(“D:\\Users\\Images\\Pictures\\”;
列表文件=新列表();
foreach(文件路径中的字符串文件路径)
{
字符串fileName=Path.GetFileName(filePath);
files.Add(新列表项(文件名@“D:\Users\Images\Pictures\”+文件名));//我可以得到图像名--D:\Users\Images\Pictures\flight.jpg
}
Repeater1.DataSource=文件;
Repeater1.DataBind();
'title='alt=”“>
客户端无法下载web应用程序文件夹之外的文件。你有两个选择-
选择1
将图像保存在web应用程序的文件夹中。比如说,
选择2
创建一个GenericHandler
注意:当应用程序转入生产时,需要确保web服务器中存在D:\Users\Images
文件夹
public class ImageHandler : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
string fileName = context.Request.QueryString["filename"];
context.Response.ContentType = "image/jpeg";
context.Response.TransmitFile(@"D:\Users\Images\Pictures\" + fileName);
}
public bool IsReusable
{
get { return false; }
}
}
ASPX
<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
<asp:Image runat="server"
ImageUrl='<%# "~/ImageHandler.ashx?filename=" + Eval("Value") %>' />
</ItemTemplate>
</asp:Repeater>
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
string[] filePaths = Directory.GetFiles(@"D:\Users\Images\Pictures");
List<ListItem> files = new List<ListItem>();
foreach (string filePath in filePaths)
{
string fileName = Path.GetFileName(filePath);
files.Add(new ListItem(fileName, fileName));
}
Repeater1.DataSource = files;
Repeater1.DataBind();
}
}
公共类ImageHandler:IHttpHandler
{
公共void ProcessRequest(HttpContext上下文)
{
字符串文件名=context.Request.QueryString[“fileName”];
context.Response.ContentType=“image/jpeg”;
context.Response.TransmitFile(@“D:\Users\Images\Pictures\”+文件名);
}
公共布尔可重用
{
获取{return false;}
}
}
ASPX
受保护的无效页面加载(对象发送方、事件参数e)
{
如果(!IsPostBack)
{
string[]filepath=Directory.GetFiles(@“D:\Users\Images\Pictures”);
列表文件=新列表();
foreach(文件路径中的字符串文件路径)
{
字符串fileName=Path.GetFileName(filePath);
添加(新列表项(文件名、文件名));
}
Repeater1.DataSource=文件;
Repeater1.DataBind();
}
}
如果我在c驱动器c:\Users\john\images中创建文件夹,我如何绑定图像?请创建一个单独的问题,因为图像滑块与原始问题完全不同。