1.cs文件中代码:
ICollection CreateDataSourceFile()
{
DataTable dtFile = new DataTable();
DataRow dr;
dtFile.Columns.Add(new DataColumn("Name", typeof(string)));
dtFile.Columns.Add(new DataColumn("Extension", typeof(string)));
dtFile.Columns.Add(new DataColumn("Length", typeof(Double)));
dtFile.Columns.Add(new DataColumn("CreationTime", typeof(string)));
dtFile.Columns.Add(new DataColumn("HiddenName", typeof(string)));
//得到此目录下所有文件名的字符串数组
DirectoryInfo dri = new DirectoryInfo(Server.MapPath("../MISDownLoad/"));
FileInfo[] flist = dri.GetFiles();
foreach(FileInfo f in flist)
{
dr = dtFile.NewRow();
dr[0] = f.Name;//文件名
dr[1] = f.Extension; 扩展名
dr[2] = f.Length/1024;大小转为KB
dr[3] = f.CreationTime;创建时间
dtFile.Rows.Add(dr);
}
DataView dvFile = new DataView(dtFile);
dvFile.Sort="CreationTime DESC";//按照时间排序
return dvFile;
}下面语句用于绑定DataGrid1:
DataGrid1.DataSource = CreateDataSourceFile();
DataGrid1.DataBind();
ICollection CreateDataSourceFile()
{
DataTable dtFile = new DataTable();
DataRow dr;
dtFile.Columns.Add(new DataColumn("Name", typeof(string)));
dtFile.Columns.Add(new DataColumn("Extension", typeof(string)));
dtFile.Columns.Add(new DataColumn("Length", typeof(Double)));
dtFile.Columns.Add(new DataColumn("CreationTime", typeof(string)));
dtFile.Columns.Add(new DataColumn("HiddenName", typeof(string)));
//得到此目录下所有文件名的字符串数组
DirectoryInfo dri = new DirectoryInfo(Server.MapPath("../MISDownLoad/"));
FileInfo[] flist = dri.GetFiles();
foreach(FileInfo f in flist)
{
dr = dtFile.NewRow();
dr[0] = f.Name;//文件名
dr[1] = f.Extension; 扩展名
dr[2] = f.Length/1024;大小转为KB
dr[3] = f.CreationTime;创建时间
dtFile.Rows.Add(dr);
}
DataView dvFile = new DataView(dtFile);
dvFile.Sort="CreationTime DESC";//按照时间排序
return dvFile;
}
DataGrid1.DataSource = CreateDataSourceFile();
DataGrid1.DataBind();2.绑定的数据表还可以添加自定义分页、删除文件等功能。。。结合文件下载类,可以生成简单的下载列表。
3.疑惑:aspx页面中如已经写好了文件名、类型、大小等列并指定其DataFieldText值与dtFile.Columns.Add()中的列名相同。执行绑定的代码后,并没有添加列,而是改写了这些列。有时间再看看是哪里的问题。

浙公网安备 33010602011771号