Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用asp.net在repeater中绑定图像_C#_Asp.net - Fatal编程技术网

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中创建文件夹,我如何绑定图像?请创建一个单独的问题,因为图像滑块与原始问题完全不同。