转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 站长学院 >> Web开发 >> 正文
ASP.NET虚拟主机的重大安全隐患(二)         ★★★★

ASP.NET虚拟主机的重大安全隐患(二)

作者:闵涛 文章来源:闵涛的学习笔记 点击数:793 更新时间:2009/4/23 10:31:29
   程序二:显示目录中所有子目录和文件的程序listdir.aspx

  目录下有子目录和文件两种形式,必须分别对待。我们调用此程序本身对子目录进行列表显示,而文件我们需要调用showfile.aspx程序对文件的属性和内容进行显示。并且两者还有不同的删除方法,所以我们在这里设置了两个DataGrid,两个DataTable,两个DataView,分别处理和显示目录和文件。

  显示和处理目录和文件的DataGrid的代码(代码在listdir.aspx文件):

  显示目录或文件的序号和名称的数据列类似于listdrivers.aspx程序中的相应代码,这里就不再重复了。对于子目录和文件分别有各自的处理页面,所以需要导航到两个不同的页面,对于子目录,我们继续使用listdir.aspx程序对其下的子目录和文件进行列表显示:

<asp:HyperLinkColumn DataNavigateUrlField="DirName"
DataNavigateUrlFormatString="listdir.aspx?dir={0}"
DataTextField="DirDetail"
HeaderText="详细信息"
Target="_new"
/>
对于文件,我们使用showfile.aspx程序显示其属性和内容:
<asp:HyperLinkColumn DataNavigateUrlField="FileName"
DataNavigateUrlFormatString="showfile.aspx?file={0}"
DataTextField="FileDetail"
HeaderText="详细信息"
Target="_new"
/>
  在两个DataGrid(DirGrid,FileGrid)中我们分别设置了两个HyperLinkColumn列来导航到不同的处理页面。

  在两个DataGrid中我们都使用了一个删除的按钮列:

<asp:ButtonColumn HeaderText="删除"
Text="删除"
CommandName="Delete"
/>
  由于添加、更新、删除功能列都是DataGrid的默认模板列,所以可以在Vs.net中通过DataGrid的属性生成器自动添加此列。

  获取上一页面所传递来的参数的代码:

  因为在下面产生数据源的方法中需要使用由上一个页面传递过来的参数来确定目录和文件的名称,所以在页面的Page_Load方法里使用了下列代码:

strDir2List = Request.QueryString["dir"];
  字符串strDir2List即传过来的目录名或文件名。

  因为我们使用了两个DateGrid,就需要进行两次数据绑定,就有两个不同的生成数据源的方法。

  生成目录数据网格(DirGrid)数据源的方法:

//通过此方法返回一个集合形式的数据视图DataView,用来初始化子目录的DataGrid
ICollection CreateDataSourceDir() {
dtDir = new DataTable();
DataRow dr;
//向DataTable中添加新的数据列,共四列
dtDir.Columns.Add(new DataColumn("DirID", typeof(Int32)));
dtDir.Columns.Add(new DataColumn("DirName", typeof(string)));
dtDir.Columns.Add(new DataColumn("DelDir", typeof(string)));
dtDir.Columns.Add(new DataColumn("DirDetail", typeof(string)));
//根据传入的参数(目录名)得到此目录下所有子目录名的字符串数组
string [] DirEntries = Directory.GetDirectories(strDir2List);
//使用foreach循环可以对未知长度的数组进行遍历循环
foreach(string DirName in DirEntries){
dr = dtDir.NewRow();
dr[0] = i;//序号
dr[1] = DirName;//文件夹名称
dr[3] = "删除";
dr[3] = "查看详情";
dtDir.Rows.Add(dr);
i++;
}
DataView dvDir = new DataView(dtDir);
//返回得到的数据视图
return dvDir;
}
生成文件数据网格(FileGrid)数据源的方法:
//通过此方法返回一个集合形式的数据视图DataView,用来初始化文件的DataGrid
ICollection CreateDataSourceFile() {
dtFile = new DataTable();
DataRow dr;
dtFile.Columns.Add(new DataColumn("FileID", typeof(Int32)));
dtFile.Columns.Add(new DataColumn("FileName", typeof(string)));
dtFile.Columns.Add(new DataColumn("DelFile", typeof(string)));
dtFile.Columns.Add(new DataColumn("FileDetail", typeof(string)));
//根据传入的参数(目录名)得到此目录下所有文件名的字符串数组
string [] FileEntries = Directory.GetFiles(strDir2List);
foreach(string FileName in FileEntries){
dr = dtFile.NewRow();
dr[0] = i;
dr[1] = FileName;
dr[2] = "删除";
dr[3] = "查看详情";
dtFile.Rows.Add(dr);
i++;
}
dvFile = new DataView(dtFile);
return dvFile;
}
  我们编程实现了两个DataSource只需在页面的Page_Load方法里对两个DataGrid进行数据绑定即可将得到的DataTable中的数据显示在aspx页面的DataGrid上。

  数据绑定代码:

//对子目录数据列表DirGrid进行数据源定义和数据绑定
DirGrid.DataSource = CreateDataSourceDir();
DirGrid.DataBind();
//对文件数据列表FileGrid进行数据源定义和数据绑定
FileGrid.DataSource = CreateDataSourceFile();
FileGrid.DataBind();
  通过我们上边介绍的主要方法,我们实现了对某个逻辑驱动器或目录中的所有子目录和文件进行了列表显示,并且可以根据显示结果更进一步的浏览子目录或者查看文件的属性和内容提要。浏览子目录仍然是通过listdir.aspx这个程序,没有任何子目录级别要求,没有目录深度限制。
157


没有相关教程
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · Web开发  · 网页制作
    · 平面设计  · 网站运营
    · 网站推广  · 搜索优化
    · 建站心得  · 站长故事
    · 互联动态
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台