假设有一个4块的滚动显示DOM,假设总数据为8条,其展示效果为如下表所示
1,5 | 2,6 |
3,7 | 4,8 |
代码实现
//DICList 的count为8
List<DataInput_Characteristic> DICList = new RisunDAL.RisunDAL<DataInput_Characteristic>().GetEntityList(" 1=1 " + " and " + sql_where).ToList();
//设置分页大小
int pagesize = 4;
//获取页数
int pagecount = ((DICList == null ? 0 : DICList.Count) % 4 == 0 ? (DICList == null ? 0 : DICList.Count) / 4 : (DICList == null ? 0 : DICList.Count) / 4 + 1);
List<DataInput_Characteristic> list1 = new List<DataInput_Characteristic>();
List<DataInput_Characteristic> list2 = new List<DataInput_Characteristic>();
List<DataInput_Characteristic> list3 = new List<DataInput_Characteristic>();
List<DataInput_Characteristic> list4 = new List<DataInput_Characteristic>();
//循环页数
for (int i = 0; i < pagecount; i++)
{
//判断第一个图的位置所取的集合下标是否为空,当i等于0时,i * pagesize + 1,的值为1,
//DICList.Take(i * pagesize + 1)等价于DICList.Take(1),DICList.Count应大于0
//DICList.Take(i * pagesize + 1).ToList().Count > i * pagesize等价于
//DICList.Take(1).ToList().Count > 0,DICList.Take(1).ToList().Count应大于0
//当i等于1时,i * pagesize + 1,的值为5
//DICList.Take(i * pagesize + 1)等价于DICList.Take(5),DICList.Count应大于4
//DICList.Take(i * pagesize + 1).ToList().Count > i * pagesize等价于
//DICList.Take(5).ToList().Count > 0,DICList.Take(5).ToList().Count应大于4
//第2,3,4位置的数据以此类推对
if (DICList != null && DICList.Count > i* pagesize)
{
if (DICList.Take(i * pagesize + 1).ToList() != null && DICList.Take(i * pagesize + 1).ToList().Count > i * pagesize)
{
list1.Add(DICList.Take(i * pagesize + 1).ToList().FirstOrDefault());
}
}
}
for (int i = 0; i < pagecount; i++)
{
if (DICList != null && DICList.Count > i * pagesize + 1)
{
//判断是否大于第二个位置的数据是否为空
if (DICList.Take(i * pagesize + 2).ToList().FirstOrDefault() != null && DICList.Take(i * pagesize + 2).ToList().Count > i * pagesize + 1)
{
//取第2个位置的数据
list2.Add(DICList.Take(i * pagesize + 2).ToList().FirstOrDefault());
}
}
}
for (int i = 0; i < pagecount; i++)
{
if (DICList != null && DICList.Count > i * pagesize + 2)
{
if (DICList.Take(i * pagesize + 3).ToList().FirstOrDefault() != null && DICList.Take(i * pagesize + 3).ToList().Count > i * pagesize + 2)
{
list3.Add(DICList.Take(i * pagesize + 3).ToList().FirstOrDefault());
}
}
}
for (int i = 0; i < pagecount; i++)
{
if (DICList != null && DICList.Count > i * pagesize + 3)
{
if (DICList.Take(i * pagesize + 4).ToList().FirstOrDefault() != null && DICList.Take(i * pagesize + 4).ToList().Count > i * pagesize + 3)
{
list4.Add(DICList.Take(i * pagesize + 4).ToList().FirstOrDefault());
}
}
}