我的一个类Read读到的数据,放在另一个类中ArrayList中,在我的页面上调用Arraylist类,将数据显示出来,
我现在想对数据进行分页显示,如何实现??请各位帮帮忙,给咱一个答案,高分,谢谢/////

解决方案 »

  1.   

    用個Label或其它東西記錄當前頁數。
    每次從ArrayList 中讀出該頁應有多少記錄再顯示出來不就可以嗎。
      

  2.   

    int page=1;   //当前页
    int pagesize=10;  //每页显示记录数取记录的时候应该是按照ArrayList中的索引号,取值下限就是pagesize*(page-1),上限是pagesize*page-1
      

  3.   

    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]);
    }
      

  4.   

    假设你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;
    }
      

  5.   

    把 res.Add(datas[i]);  直接换成显示语句,也可。不过 Fanks 说得对,这只适合于数据量不大的情况,主要是因为数据量大了的话网络传输的数据太多,内存利用也比较厉害。
      

  6.   

            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;
                }
               
            }