.NET 读取本地文件绑定到GridViewRow

2023-03-07,,

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 == "")
{
//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[].FindControl("ImgPath");
Img.ImageUrl = e.Row.Cells[].Text;
e.Row.Cells[].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 > ;
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 = ; i < dtaArry.Length; i++)
{ if (dtaArry[i].Trim() != "")//判断是否为空
{ dr = dt.NewRow();
dr[] = dtaArry[i];//文件路径
dr[] = Path.GetFileName(dtaArry[i]);//文件名 //获取文件大小(Decimal.Round(Convert.ToDecimal(FI.Length), 2) string FIer = dtaArry[i].ToString();
FileInfo FI = new FileInfo(FIer);
dr[] = Convert.ToString(Decimal.Round(Convert.ToDecimal(FI.Length / ), )) + "KB";//获取的是字节byte,还需要转换为千字节KB dr[] = 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(, ); //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 = ; 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[].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(, Img.ImageUrl.Length-));
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"], );
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(-); } }
}

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:%;
height: 714px;
}
#div
{
height: 701px;
}
</style>
<script type="text/javascript">
function SelAllClick() {
var isSelAll = document.getElementById("gridFileList_ctl01_CheckAll").checked;
for (var i = ; i < ; i++) {
if (i < ) 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="" OnRowDataBound="gridFileList_RowDataBound" AllowPaging="True" PageSize="" OnPageIndexChanging="gridFileList_PageIndexChanging" onsorting="gridFileList_Sorting" BorderStyle="None"
AutoGenerateColumns="false" > <Columns> <asp:TemplateField ItemStyle-CssClass="divcheck" > <ItemStyle HorizontalAlign="Center" /> <HeaderTemplate>&nbsp;<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="" Height="" /> </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" />&nbsp;
<asp:Button runat="server" ID="btnDel" Text="删除文件" OnClick="btnDel_Click" OnClientClick="return confirm('提示:确定要删除吗?');" />
&nbsp; <asp:Button ID="btBack" runat="server" Text="返回上一页" onclick="btBack_Click" /> </td>
</tr>
</table> </div>
</div>
</form>
</body>
</html>

.NET 读取本地文件绑定到GridViewRow的相关教程结束。

《.NET 读取本地文件绑定到GridViewRow.doc》

下载本文的Word格式文档,以方便收藏与打印。