asp.net  wap  用list 分页,解决100分!!!我是用List 来绑定数据!!!!!

解决方案 »

  1.   

    List比ResultSet好处就在于断开数据库连接的情况下还能高效率的执行。而且记录指针定位也很少加重服务器负载。现在把部分源代码帖上来。如果有幸哪位高手看到了,还请指点一二!我初次写分页,难免有疏漏。嘿嘿......    /**
        *@param list List 需要分页的List
        *@param currPage int 当前页
        */
        public String[][] showList(List list, int currPage) throws Exception
        {
            this.setList(list);
            int pageSize = this.getPageSize();//分页大小
            this.setRowsCount();
            int rowsCount = this.getRowsCount();//总记录数
            this.setPageCount();
            int pageCount = this.getPageCount();;//页总数
            this.setPageRowCount();
            int pageRowCount = this.getPageRowCount();//当前页首记录指针
            
            String[][] result;
            
            if(pageCount == 1)
            {
                //总记录数未达到一页
                result = dispSampleMainInfo(list,pageRowCount,rowsCount);
                this.foot = "|<<<" + " " + "<<" + " " + 
                    "第" + currPage + "页" + " " +
                    ">>" + " " + ">>>|" + " " +
                    "共" + pageCount + "页";
             
            }
            else
            {
                //总记录数超过一页
                if(currPage ==1)//第一页
                {
                    result = dispSampleMainInfo(list,pageRowCount,pageRowCount + pageSize);
                    this.foot = "|<<<" + " " + "<<" + " " + 
                        "第" + currPage + "页" + " " +
                        "<a href='results.jsp?page=" + (currPage + 1) + "'>>></a>" + " " + 
                        "<a href='results.jsp?page=" + pageCount + "'>>>>|</a>" + " " +
                        "共" + pageCount + "页";
                }
                else if(currPage >1 && currPage < pageCount)//中间页
                {
                    result = dispSampleMainInfo(list,pageRowCount,pageRowCount + pageSize);
                    this.foot = "<a href='results.jsp?page=1'>|<<<</a>" + " " + 
                        "<a href='results.jsp?page=" + (currPage - 1) + "'><<</a>" + " " + 
                        "第" + currPage + "页" + " " +
                        "<a href='results.jsp?page=" + (currPage + 1) + "'>>></a>" + " " + 
                        "<a href='results.jsp?page=" + pageCount + "'>>>>|</a>" + " " +
                        "共" + pageCount + "页";
                }
                else//最后页
                {
                    result = dispSampleMainInfo(list,pageRowCount,rowsCount);
                    this.foot = "<a href='results.jsp?page=1'>|<<<</a>" + " " + 
                        "<a href='results.jsp?page=" + (currPage - 1) + "'><<</a>" + " " + 
                        "第" + currPage + "页" + " " +
                        ">>" + " " + ">>>|" + " " +
                        "共" + pageCount + "页";
                }
            }
            return result;
        }    private String[][] dispSampleMainInfo(List list, int off, int end)
        {        
            String[][] result;
            if(list.size() == 0)
            {
                result = new String[1][1];
                result[0][0] = "没有查询到相关的记录!";
            }
            else
            {
                result = new String[end-off][Sample1.Keys[0].length];
                int k = 0;
                for(int i = off; i < end; i++)
                {
                    Map m = (Map)list.get(i);
                    for(int j = 0; j < m.size(); j++)
                    {
                        String key = Sample1.Keys[0][j];
                        String value = (String)m.get(key);
                        result[k][j] = value;
                    }
                    k++;
                }
            }
            return result;
        }最终获得一个页面要用到的二维数组,然后的工作就是在显示页面的方法里使用这个数组就搞定!呵呵......上面是在Bean里完成的,所以,没有把具体的显示(HTML)给写出来。
      

  2.   

    你可以自己写一个Pager来分页。
      

  3.   

    刚刚自己写的一个分页。        /// <summary>
            /// 分页页码处理 
            /// </summary>
            /// <param name="lnk1"></param>
            /// <param name="lnk2"></param>
            /// <param name="pageUrl"></param>
            /// <param name="pageIndex"></param>
            /// <param name="pageSize"></param>
            /// <param name="pageCount"></param>
            public void PagerBuilder(Link lnk1, Link lnk2, string pageUrl, int pageIndex, int pageSize, int pageCount)
            {
                if (pageSize == 0)
                    pageSize = 1;
                if (pageIndex == 0)
                    pageIndex = 1;
                if (pageCount == 0)
                    pageCount = 1;
                int lastPageIndex = pageCount / pageSize;            if (pageIndex == 1)
                {
                    lnk1.Text = "下一页";
                    lnk1.NavigateUrl = pageUrl + "?p=2";
                    lnk2.Text = "尾页";
                    lnk2.NavigateUrl = pageUrl + "?p=" + lastPageIndex.ToString();
                }
                else if (pageIndex == lastPageIndex)
                {
                    lnk1.Text = "首页";
                    lnk1.NavigateUrl = pageUrl;
                    lnk2.Text = "上一页";
                    lnk2.NavigateUrl = pageUrl + "?p=" + (lastPageIndex - 1).ToString();
                }
                else
                {
                    lnk1.Text = "上一页";
                    lnk1.NavigateUrl = pageUrl + "?p=" + (pageIndex - 1).ToString();
                    lnk2.Text = "下一页";
                    lnk2.NavigateUrl = pageUrl + "?p=" + (pageIndex + 1).ToString(); 
                }
            }
    ------------↓↓↓↓↓↓↓↓↓↓↓↓↓大家注意↓↓↓↓↓↓↓↓↓↓↓-----------------------------
    小弟目前是搞wap开发,初次接触希望大家给与指导。这个分页是用于wap的分页的!