在C#中我重数据库中读到的数据放在arraylist类中,如何在页面上分页 我的一个类Read读到的数据,放在另一个类中ArrayList中,在我的页面上调用Arraylist类,将数据显示出来,我现在想对数据进行分页显示,如何实现??请各位帮帮忙,给咱一个答案,高分,谢谢///// 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用個Label或其它東西記錄當前頁數。每次從ArrayList 中讀出該頁應有多少記錄再顯示出來不就可以嗎。 int page=1; //当前页int pagesize=10; //每页显示记录数取记录的时候应该是按照ArrayList中的索引号,取值下限就是pagesize*(page-1),上限是pagesize*page-1 ArrayList asd = new ArrayList(50);ArrayList ass =new ArrayList(); //输出的结果int page=1; //当前页 int pagesize=10; //每页显示记录数for(int i=pagesize*(page-1);i<=pagesize*page-1;i++){ ass.add(asd[i]);} 假设你ArrayList 是datas,可以用以下函数取出当前页显示的内容:ArrayList toBeShowed(int pageNo,int pageSize,ref datas){ ArrayList res=new ArrayList(); for(int i=(pageNo-1)*pageSize;i<(Math.Min(datas.Count,pageNo*PageSize);i++) res.Add(datas[i]); return res;} 把 res.Add(datas[i]); 直接换成显示语句,也可。不过 Fanks 说得对,这只适合于数据量不大的情况,主要是因为数据量大了的话网络传输的数据太多,内存利用也比较厉害。 public DataTable search(string sqlString) { DataTable dt = new DataTable(); try { log.Info(sqlString); command.CommandText = sqlString; SqlDataReader reader = command.ExecuteReader(); int iCount = reader.FieldCount; while (reader.Read()) { DataRow row = new DataRow(true); for (int i = 0; i < iCount; i++) { if (!reader.IsDBNull(i)) { row.Add(reader.GetName(i), reader.GetValue(i)); } } dt.AddRow(row); } reader.Close(); return dt; } catch (Exception e) { log.Warn("sql:" + sqlString + " " + e.Message); DatabaseException de = new DatabaseException(e.Message); de.SqlString = sqlString; throw de; } } 如何生成给定大小的JPG图片 C#,textbox显示DataGridView的内容 菜单栏与工具栏 "like"和"in"和"= "和"charindex"那个效率高? 真诚求助绑定的问题?(combobox,checkbox) C# DataGridView 列宽问题。 谁帮我解决了万分感激,并送上剩下的80分 输入年月日,如何得出正确日期 请问C#的Form有没有类似与VB的ScaleMode的属性?谢谢 公司要求员工持股,在下征求一下大家的意见。 SQL.与.NET连接问题.非常谢谢谢谢.高分!!! 就这一个错误,怎么都找不到!请师傅们帮帮我!
每次從ArrayList 中讀出該頁應有多少記錄再顯示出來不就可以嗎。
int pagesize=10; //每页显示记录数取记录的时候应该是按照ArrayList中的索引号,取值下限就是pagesize*(page-1),上限是pagesize*page-1
int pagesize=10; //每页显示记录数for(int i=pagesize*(page-1);i<=pagesize*page-1;i++)
{
ass.add(asd[i]);
}
{
ArrayList res=new ArrayList();
for(int i=(pageNo-1)*pageSize;i<(Math.Min(datas.Count,pageNo*PageSize);i++)
res.Add(datas[i]);
return res;
}
{
DataTable dt = new DataTable();
try
{
log.Info(sqlString);
command.CommandText = sqlString;
SqlDataReader reader = command.ExecuteReader(); int iCount = reader.FieldCount;
while (reader.Read())
{
DataRow row = new DataRow(true);
for (int i = 0; i < iCount; i++)
{
if (!reader.IsDBNull(i))
{
row.Add(reader.GetName(i), reader.GetValue(i));
}
}
dt.AddRow(row);
}
reader.Close();
return dt;
}
catch (Exception e)
{
log.Warn("sql:" + sqlString + " " + e.Message);
DatabaseException de = new DatabaseException(e.Message);
de.SqlString = sqlString;
throw de;
}
}