动态添加控件以及批量上传文件

来源:互联网 发布:python pyqt5 编辑:程序博客网 时间:2024/05/16 06:40

1、例程

public partial class _Default : System.Web.UI.Page {    protected void Page_Load(object sender, EventArgs e)    {        if (!Page.IsPostBack)//第一次加载页面        {            SFUPC();//页面执行一次将上传文件控件集放到缓存中        }    }       protected void Button1_Click(object sender, EventArgs e)    {        //执行上传文件        UpFile();    }    protected void Button2_Click(object sender, EventArgs e)    {        //执行添加控件方法        InsertC();    }    //该方法用于保存当前页面上传文件控件集到缓存中    private void SFUPC()    {        ArrayList AL = new ArrayList();//创建动态增加数组        foreach (Control C in F.Controls) //F代表一表格table的ID        {            if (C.GetType().ToString() == "System.Web.UI.HtmlControls.HtmlTableRow")//查看第一行            {                HtmlTableCell HTC = (HtmlTableCell)C.Controls[0];//查看行的第一列                foreach (Control FUC in HTC.Controls)//搜索控件                {                    if (FUC.GetType().ToString() == "System.Web.UI.WebControls.FileUpload")                    {                        FileUpload FU = (FileUpload)FUC;                        AL.Add(FU);                    }                }            }        }        Session.Add("FilesControls", AL);    }    //该方法用于添加一个上传文件的控件    private void InsertC()    {        ArrayList AL = new ArrayList();        this.F.Rows.Clear();        GetInfo();        HtmlTableRow HTR = new HtmlTableRow();        HtmlTableCell HTC = new HtmlTableCell();        HTC.Controls.Add(new FileUpload());        HTR.Controls.Add(HTC);        F.Rows.Add(HTR);        SFUPC();    }    //该方法用于读取缓存中存储的上传文件控件集    private void GetInfo()    {        ArrayList AL = new ArrayList();        if (Session["FilesControls"] != null)        {            AL = (System.Collections.ArrayList)Session["FilesControls"];            for (int i = 0; i < AL.Count; i++)            {                HtmlTableRow HTR = new HtmlTableRow();                HtmlTableCell HTC = new HtmlTableCell();                HTC.Controls.Add((System.Web.UI.WebControls.FileUpload)AL[i]);                HTR.Controls.Add(HTC);                F.Rows.Add(HTR);            }        }    }    //该方法用于执行文件上传操作    private void UpFile()    {        string FilePath = Server.MapPath("./") + "File";        HttpFileCollection HFC = Request.Files;        for (int i = 0; i < HFC.Count; i++)        {            HttpPostedFile UserHPF = HFC[i];            try            {                if (UserHPF.ContentLength > 0)                {                    UserHPF.SaveAs(FilePath + "\\" + System.IO.Path.GetFileName(UserHPF.FileName));                }            }            catch            {                Label1.Text = "处理出错!";            }        }        if (Session["FilesControls"] != null)        {            Session.Remove("FilesControls");        }        Label1.Text = "上传成功!";    }}


简单组合而已

原创粉丝点击