.NET 读取本地文件绑定到GridViewRow
wjgl.aspx.cs:
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; using DBUtility; namespace qhsy.DWJSC { public partial class wjgl : System.Web.UI.Page { protected string File_List = ""; protected void Page_Load(object sender, EventArgs e) { if (Page.IsPostBack == false) { if (Request.UrlReferrer.ToString().Contains("wjsc.aspx")==false) { //保存上一页的url传递到wjsc.aspx HttpCookie cookie = new HttpCookie("back"); cookie.Values.Add("url", Request.UrlReferrer.ToString()); Response.AppendCookie(cookie); } lb_title.Text = "文 件 管 理"; //是否查询 string sfcx = Request.QueryString["sfcx"]; if (sfcx == "1") { //gridFileList.Columns[0].Visible = false; bg.Visible = false; } ////是否图片 //string sftp = Request.QueryString["sftp"]; //if (sftp == "1") //{ // //GridView中添加图片缩略图 // gridFileList.Columns[2].Visible = true; //} //操作模块id,参数 ViewState["shmkid"] = Request.QueryString["shmkid"]; //路径信息 fj = "~/File/JYWJ/8910427356/5209168734/"; ViewState["fj"] = Request.QueryString["fj"]; string path = string.Format("{0}", (string)ViewState["fj"]); path = Server.MapPath(path); ixExit(path); //设定初始排序字段为文件修改时间FileLastWriteTime gridFileList.Attributes.Add("SortExpression", "FileLastWriteTime"); gridFileList.Attributes.Add("SortDirection", "DESC"); BindGrid(); } } //绝对路径(目录)是否存在,不存在则创建 private void ixExit(string path) { if (!Directory.Exists(path)) { Directory.CreateDirectory(path); } } //读取本地文件绑定到GridViewRow protected void gridFileList_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { Image Img = (Image)e.Row.Cells[0].FindControl("ImgPath"); Img.ImageUrl = e.Row.Cells[5].Text; e.Row.Cells[5].Text = ""; } DataClass.Comm.gv_hbs(sender, e); } //分页 protected void gridFileList_PageIndexChanging(object sender, GridViewPageEventArgs e) { gridFileList.PageIndex = e.NewPageIndex; this.BindGrid(); } //绑定gridview private void BindGrid() { //获取数据源 DataTable dtb = FileDataTable(); //排序 string SortDirection = gridFileList.Attributes["SortDirection"].ToString(); string SortExpression = gridFileList.Attributes["SortExpression"].ToString(); dtb.DefaultView.Sort = string.Format("{0} {1}", SortExpression, SortDirection); //赋数据源并绑定 gridFileList.DataSource = dtb; gridFileList.DataBind(); gridFileList.Visible = gridFileList.Rows.Count > 0; gridFileList.Attributes.Add("BorderColor", "#000000"); } private DataTable FileDataTable() { string fj = (string)ViewState["fj"]; string path = Server.MapPath(fj); GetFiles(path); //构造DataTABLE DataTable dt = new DataTable(); dt.Columns.Add(new DataColumn("FilePath", typeof(string))); dt.Columns.Add(new DataColumn("FileName", typeof(string))); dt.Columns.Add(new DataColumn("FileLength", typeof(string))); dt.Columns.Add(new DataColumn("FileLastWriteTime", typeof(string))); DataRow dr; //将文件数组集合切割到数组 string[] dtaArry = File_List.Split(','); for (int i = 0; i < dtaArry.Length; i++) { if (dtaArry[i].Trim() != "")//判断是否为空 { dr = dt.NewRow(); dr[0] = dtaArry[i];//文件路径 dr[1] = Path.GetFileName(dtaArry[i]);//文件名 //获取文件大小(Decimal.Round(Convert.ToDecimal(FI.Length), 2) string FIer = dtaArry[i].ToString(); FileInfo FI = new FileInfo(FIer); dr[2] = Convert.ToString(Decimal.Round(Convert.ToDecimal(FI.Length / 1024), 2)) + "KB";//获取的是字节byte,还需要转换为千字节KB dr[3] = FI.LastWriteTime; dt.Rows.Add(dr); } } return dt; } //遍文件夹下的所有子文件夹下的文件 public void GetFiles(string ObjDirPath) { DirectoryInfo SourceDir = new DirectoryInfo(ObjDirPath); foreach (FileSystemInfo FSI in SourceDir.GetFileSystemInfos()) { if (FSI is DirectoryInfo) { //如果是文件夹则递归 GetFiles(FSI.FullName); } else { string FilePath = ""; FilePath = FSI.FullName.ToLower(); string fj = (string)ViewState["fj"]; string mc = fj.Substring(8, 4); //FilePath = FilePath.Substring(FilePath.LastIndexOf(mc)); File_List += FilePath + ","; } } } //排序 protected void gridFileList_Sorting(object sender, GridViewSortEventArgs e) { string sortExpression = e.SortExpression.ToString(); string sortdirection = "ASC"; if (sortExpression == gridFileList.Attributes["SortExpression"]) { sortdirection = (gridFileList.Attributes["SortDirection"].ToString() == sortdirection ? "DESC" : "ASC"); } gridFileList.Attributes["SortExpression"] = sortExpression; gridFileList.Attributes["SortDirection"] = sortdirection; this.BindGrid(); } protected void btnDel_Click(object sender, EventArgs e) { try { FileInfo fileinfo; bool IsSelect = false; for (int i = 0; i < gridFileList.Rows.Count; i++) { GridViewRow row = gridFileList.Rows[i]; if (((CheckBox)row.FindControl("chkDel")).Checked) { IsSelect = true; Image Img = (Image)gridFileList.Rows[i].Cells[0].FindControl("ImgPath"); fileinfo = new FileInfo(Img.ImageUrl); if (fileinfo.Exists) { fileinfo.Delete(); //根据ccid删除表jy_wj_wjccb中的数据 string str = string.Format("delete from jy_wj_wjccb where fj='{0}'", Img.ImageUrl.Substring(12, Img.ImageUrl.Length-12)); DbHelperSQL.Query(str); } } } if (IsSelect) { DataClass.Comm.Alert(Page, "删除成功!"); } else { DataClass.Comm.Alert(Page, "请选择要删除的行!"); } } catch (Exception ex) { //DataClass.Comm.Alert(Page, ex.ToString()); } BindGrid(); } protected void btnAdd_Click(object sender, EventArgs e) { string s = string.Format("~/DWJSC/wjsc.aspx?shmkid={0}&&fj={1}&&sfcg={2}",(string)ViewState["shmkid"], (string)ViewState["fj"], 0); Response.Redirect(s); } protected void btBack_Click(object sender, EventArgs e) { Response.Redirect((Request.Cookies["back"].Values["url"]).ToString()); //清空Cookies["back"] Response.Cookies["back"].Expires = DateTime.Now.AddDays(-1); } } }
wjgl.aspx:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="wjgl.aspx.cs" Inherits="qhsy.DWJSC.wjgl" %> <!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 id="Head1" runat="server"> <title>文件管理</title> <link href="../COMM/CSS/CSS.css" rel="stylesheet" type="text/css" /> <style type="text/css"> #wjgl { background:#F2FBE5; text-align:center; vertical-align:middle; width:100%; height: 714px; } #div { height: 701px; } </style> <script type="text/javascript"> function SelAllClick() { var isSelAll = document.getElementById("gridFileList_ctl01_CheckAll").checked; for (var i = 2; i < 32; i++) { if (i < 10) checkBoxId = "gridFileList_ctl0" + i + "_chkDel"; else checkBoxId = "gridFileList_ctl" + i + "_chkDel"; var checkBoxObj = document.getElementById(checkBoxId); if (checkBoxObj == undefined || checkBoxObj == null) break; checkBoxObj.checked = isSelAll; } } </script> </head> <body class="body"> <form id="form1" runat="server"> <div id="div" class="div"> <div id="wjgl"> <table width="100%"> <tr> <td> <div class="divtitle" > <asp:Panel ID="Panel4" CssClass="pan" runat="server" > <asp:Label ID="lb_title" runat="server" CssClass="lab" Text=""></asp:Label> </asp:Panel> </div> </td> </tr> <tr> <td> <asp:GridView runat="server" ID="gridFileList" Width="100%" HeaderStyle-Height="30" OnRowDataBound="gridFileList_RowDataBound" AllowPaging="True" PageSize="20" OnPageIndexChanging="gridFileList_PageIndexChanging" onsorting="gridFileList_Sorting" BorderStyle="None" AutoGenerateColumns="false" > <Columns> <asp:TemplateField ItemStyle-CssClass="divcheck" > <ItemStyle HorizontalAlign="Center" /> <HeaderTemplate> <input id="CheckAll" type="checkbox" onclick="SelAllClick();" runat="server"/></HeaderTemplate> <ItemTemplate> <asp:CheckBox runat="server" ID="chkDel" /> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="序号" InsertVisible="False"> <ItemStyle HorizontalAlign="Center" /> <ItemTemplate> <asp:Label ID="Label2" runat="server" Text='<%# this.gridFileList.PageIndex * this.gridFileList.PageSize + this.gridFileList.Rows.Count + 1%>'/> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="图片" Visible="false" InsertVisible="False" > <ItemStyle HorizontalAlign="Center" /> <ItemTemplate> <asp:Image ID="ImgPath" runat="server" Width="150" Height="80" /> </ItemTemplate> </asp:TemplateField> <asp:BoundField DataField="FileName" HeaderText="名称" SortExpression="FileName" > <ItemStyle HorizontalAlign="Center" /> </asp:BoundField> <asp:BoundField DataField="FileLength" HeaderText="大小" SortExpression="FileLength" > <ItemStyle HorizontalAlign="Center" /> </asp:BoundField> <asp:BoundField DataField="FilePath" SortExpression="FilePath"> <ItemStyle HorizontalAlign="Center" /> </asp:BoundField> <asp:BoundField DataField="FileLastWriteTime" HeaderText="修改时间" SortExpression="FileLastWriteTime" > <ItemStyle HorizontalAlign="Center" /> </asp:BoundField> </Columns> </asp:GridView> </td> </tr> <tr id="bg" runat="server"> <td align="center" class="sub_bg"> <asp:Button runat="server" ID="btnAdd" Text="添加文件" OnClick="btnAdd_Click" style="height: 26px" /> <asp:Button runat="server" ID="btnDel" Text="删除文件" OnClick="btnDel_Click" OnClientClick="return confirm('提示:确定要删除吗?');" /> <asp:Button ID="btBack" runat="server" Text="返回上一页" onclick="btBack_Click" /> </td> </tr> </table> </div> </div> </form> </body> </html>