用List类对文件进行分页?

2006年05月28日  |  9:30 上午分类:Develop  |  

看到BI上常有人问这样的问题,其实呢,解决的方法很简单
在asp中你可以用数组去解决
在.Net中你可以用List类或Quere类来解决
这里用.net来实现,其实也就是这个blog后台管理中的一个附件管理功能
因为是用文件操作,所以需要导入System.Io

public partial class FileBowser : System.Web.UI.Page
{

int _page = 1;   //设置当前页码为第1页
string _capture_string = "";   //用来存储主体的图片代码
int _pagesize = 30;   //每页显示的图片数
string _uploadPath = ConfigurationManager.AppSettings["UploadImagePhysicsDirectory"];  //文件夹的实路径
string _uploads = ConfigurationManager.AppSettings["Uploads"];   //虚路径
List<FileInfo> sl = new List<FileInfo>();  //.net 2.0中的泛类型,主要靠它了
protected void Page_Load(object sender, EventArgs e)
{
if (Request.QueryString["page"] != null)
_page = Int16.Parse(Request.QueryString["page"]);
getFiles();
}

private void getFiles()
{
DirectoryInfo di = new DirectoryInfo(_uploadPath);
foreach (FileInfo fi in di.GetFiles())   //遍历当前目录下的所有文件,并添加至sl变量中
{
sl.Add(fi);
}
int index = 0;
int _startRecord = (_page-1) * _pagesize;  //计算起始数
if (sl.Count > 0)
{
//计算总页数
int _pagecount = sl.Count % _pagesize == 0 ? sl.Count / _pagesize : sl.Count / _pagesize + 1;

for (int i = _startRecord; i < _startRecord+_pagesize; i++)
{
if (index % 6 == 0) _capture_string += "<tr>";
_capture_string += string.Format("<td align=\"center\"><img src=\"../zh-cn/{0}/{1}\"", _uploads, sl[i].Name);
if (index % 6 == 5) _capture_string += "</tr>";

index++;
if (i >= (sl.Count-1)) break;

}
int quot = index % 6;
if (quot > 0)
{
for (; quot < 6; quot++) _capture_string += @"<td ></td>";
_capture_string += "</tr>";
}

}
else
{
_capture_string += "<tr><td>没有任何附件</td></tr>";
}
}
protected string getUploads()
{
return _capture_string;
}

}

前台用getUploads()方法即可得到分页,当然,分页的序号这里没有给出,留给大家了

转载时务必以超链接形式标明文章原始出处和作者信息。

相关文章

  • 暂无相关日志

发表您的评论

1410168172122013183195114157619