zoukankan      html  css  js  c++  java
  • DataList做一个相册,并可以上传图片

    1、前台代码

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="DataListPhotos_Page.aspx.cs" Inherits="DataSourceDemo.DataListPhotos_Page" %>
    
    <!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>Photos</title>
         <style>
         .ShowPage-font
         { font-size:12px;
         	}
        </style>
    </head>
    <body>
        <form id="form1" runat="server">
       <div>
         <asp:DataList ID="DataList1" runat="server" CellPadding="4" CellSpacing="2" 
              GridLines="Both" RepeatColumns="3" RepeatDirection="Horizontal">  
          <ItemTemplate>  
             <div>  
             <a href='<%#"Photos/"+Eval("Name") %>' target="_blank" /><%--能够点击图片查看--%>  
             <asp:Image ID="Image1" runat="server" width="160" Height="98" ImageUrl='<%#"Photos/"+Eval("Name") %>' />  
             </div>  
          </ItemTemplate>  
        </asp:DataList> 
       <div class="ShowPage-font" >  
         <asp:Label ID="lblPageCount" runat="server"></asp:Label>
         第<asp:Label ID="lblCount" runat="server"></asp:Label>页       
         <asp:LinkButton ID="lbtnPreview" runat="server" Text="上一页" OnClick="lbtnPreview_Click" Font-Size="Small" ></asp:LinkButton>   
         <asp:LinkButton ID="lbtnNext" runat="server" Text="下一页" OnClick="lbtnNext_Click" Font-Size="Small" ></asp:LinkButton>   
         <asp:FileUpload ID="FileUpload1" runat="server" />
         <asp:Button ID="btnUploadFile" runat="server" Text="确定上传" Height="21px" onclick="btnUploadFile_Click" />        
       </div>        
       </div>
        </form>
    </body>
    </html>
    

     2、后台代码

    using System;
    using System.Collections;
    using System.Configuration;
    using System.Data;
    using System.Linq;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.HtmlControls;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Xml.Linq;
    using System.IO;
    
    namespace DataSourceDemo
    {
        public partial class DataListPhotos_Page : System.Web.UI.Page
        {
            protected void Page_Load(object sender, EventArgs e)
            {
                if (!IsPostBack)
                {
                    lblCount.Text = "1";
                    BindPhotos();  
    
                }
            }
            private void BindPhotos()
            {      
                string ImagePath = Server.MapPath("~/Photos/");//图片路径 
                DirectoryInfo ImageFile = new DirectoryInfo(ImagePath);
                FileInfo[] FileArray = ImageFile.GetFiles("*.jpg"); //得到目录下的所有jpg图片 
                DataTable dtPhoto = new DataTable("Album");
                DataColumn colSmall = new DataColumn("Name");
                DataColumn colNormal = new DataColumn("Photo");
                dtPhoto.Columns.Add(colSmall);
                dtPhoto.Columns.Add(colNormal);           
                for (int i = 0; i < (FileArray.Length); i++)//将图片存入table中  
                {
                    DataRow Row = dtPhoto.NewRow();
                    Row["Name"] = FileArray[i].Name;
                    Row["Photo"] = "./Photos/" + FileArray[i].Name;
                    dtPhoto.Rows.Add(Row);
                }
                //分页 
                PagedDataSource Source = new PagedDataSource();
                Source.AllowPaging = true;
                Source.DataSource = dtPhoto.DefaultView;
                Source.PageSize = 9;
                int CurrentPage = Convert.ToInt32(lblCount.Text);
                Source.CurrentPageIndex = CurrentPage - 1;
                lbtnPreview.Enabled = true;
                lbtnNext.Enabled = true;
                if (CurrentPage == 1)
                {
                    lbtnPreview.Enabled = false;
                }
                if (CurrentPage == Source.PageCount)
                {
                    lbtnNext.Enabled = false;
                }
                lblPageCount.Text = "共" + Source.PageCount + "页/";
                DataList1.DataSource = Source;
                DataList1.DataBind();
            }
             
            protected void lbtnNext_Click(object sender, EventArgs e)//下一页 
            {
                lblCount.Text = Convert.ToString(Convert.ToInt32(lblCount.Text) + 1);
                BindPhotos();
            }
    
            protected void lbtnPreview_Click(object sender, EventArgs e)//上一页  
            {
                lblCount.Text = Convert.ToString(Convert.ToInt32(lblCount.Text) - 1);
                BindPhotos();
            }
    
            protected void btnUploadFile_Click(object sender, EventArgs e)//图片上传
            {
                string FilePath = Server.MapPath("~/Photos/");
                HttpFileCollection UploadFile = Request.Files;
                if (FileUpload1.HasFile)//表示控件是否包含文件
                {
                    for (int i = 0; i < UploadFile.Count; i++)
                    {
                        HttpPostedFile postFile = UploadFile[i];
                        try
                        {
                            if (postFile.ContentLength > 0)
                            {
                                string FileName = postFile.FileName;
                                string SingleName = FileName.Substring(FileName.LastIndexOf(@"") + 1);
                                postFile.SaveAs(FilePath + SingleName);
                            }
                        }
                        catch (Exception ex)
                        {
                            Assistant.AlertMessage(ex.Message, this);//Assistant是自定义的类,用于弹出窗口信息                      
                        }
                    }
                    Response.Redirect("~/DataListPhotos_Page.aspx");
                }
                else
                {
                    Assistant.AlertMessage("请输入要上传的文件", this);
                }
            }
           
        }
    }
    

     3、Assistant类

     public class Assistant
        {
            public static void AlertMessage(string msg, Page page)
            {
                page.ClientScript.RegisterStartupScript(page.GetType(), "", "<script language='javascript'>alert('" + msg + "');</script>");
            }
    
        }
    

     4、效果预览

  • 相关阅读:
    TypeScript学习笔记(七):模块
    TypeScript学习笔记(六):泛型
    TypeScript学习笔记(五):接口
    TypeScript学习笔记(四):函数
    TypeScript学习笔记(三):类
    TypeScript学习笔记(二):基本数据类型及数据转换
    TypeScript学习笔记(一):介绍及环境搭建
    Egret的VS环境搭配
    [U3D Demo] 手机飞机大战
    Unity3D之UGUI学习笔记(三):EventSystem
  • 原文地址:https://www.cnblogs.com/ElvisZhongShao/p/3926690.html
Copyright © 2011-2022 走看看