Hello All, We are going to start new batch from next week. message/call or mail us for more details.

5 July 2012

how to bind or display images from folder to datalist using asp.net or how to insert images into folder and display images from folder to datalist using asp.net

Introduction

Here I will explain how insert images into folder and how to bind the images to datalist using asp.net.

Description:

 I will explain how to save images into folder and how we can bind that images to datalist using asp.net. It’s very easy to store images in folder and binding that images to datalist. For that first create one new website after that right click on that website select New Folder give name as Images because here I am using same name if you want to use another name you need to change the name in code also after completion of adding Imagesfolder to your website Design your aspx page like this


<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Bindimagesfromfolder.aspx.cs"
    Inherits="Bindimagesfromfolder" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Bind Images to Datalist from folder</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:FileUpload ID="fileupload1" runat="server" />
        <asp:Button ID="btnsave" runat="server" Text="Upload" OnClick="btnsave_Click" />
    </div>
    <div>
        <asp:DataList ID="dtlist" runat="server" RepeatColumns="4" CellPadding="5">
            <ItemTemplate>
                <asp:Image Width="100" ID="Image1" ImageUrl='<%# Bind("Name", "~/Images/{0}") %>'
                    runat="server" />
                <br />
                <asp:HyperLink ID="HyperLink1" Text='<%# Bind("Name") %>' NavigateUrl='<%# Bind("Name", "~/Images/{0}") %>'
                    runat="server" />
            </ItemTemplate>
            <ItemStyle BorderColor="Brown" BorderStyle="dotted" BorderWidth="3px" HorizontalAlign="Center"
                VerticalAlign="Bottom" />
        </asp:DataList>
    </div>
    </form>
</body>
</html>


After that add using System.IO and using System.Collections namespaces and write the following code in code behind


protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            BindDataList();        }


    }

    protected void BindDataList()
    {
        DirectoryInfo dir = new DirectoryInfo(MapPath("Images"));
        FileInfo[] files = dir.GetFiles();
        ArrayList listItems = new ArrayList();
        foreach (FileInfo info in files)
        {
            listItems.Add(info);
        }
        dtlist.DataSource = listItems;
        dtlist.DataBind();

    }
    protected void btnsave_Click(object sender, EventArgs e)
    {
        string filename = Path.GetFileName(fileupload1.PostedFile.FileName);
        fileupload1.SaveAs(Server.MapPath("Images/" + filename));
        BindDataList();
    }

3 comments:

  1. This is very good and it works. I have a need for this with a twist in it. I need to make the target folder variable. So I would like to use a variable for the folder path. This is easy to do in the code behind but what to do in the aspx markup?

    I tried using "FullName" from the fileinfo object but this returns a physical path and so does not work with imagebuttons.

    Any idea how this could be done?

    ReplyDelete
  2. It happened in 1791 when the Constitution for the United States of America was re-written and the United States became a private corporation under the international bankers. What happened? Tiny Net Worth happened for the first time in history and again in 1933 when the north American States were taken off the gold and silver standard by the United States private corporation central government to be ruled by another private corporation and central international bank called the Federal Reserve to control all mortgage, land, and property in the U.S.A..

    ReplyDelete