看到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()方法即可得到分页,当然,分页的序号这里没有给出,留给大家了