extjs4.0 grid分页查询出问题了

为什么无法得到总共有多少条呢?... 为什么无法得到总共有多少条呢? 展开
 我来答
object8888
2014-01-26 · TA获得超过274个赞
知道小有建树答主
回答量:302
采纳率:100%
帮助的人:310万
展开全部

给你说下分页的原理。

其实就是取固定条数(比如每页取5条)的记录,同时附带一个记录总数(一共有50条)。

你后台的返回结果,要有这两个东西。{result:[{结果集:结果集},{总数:总数}]}

然后用store接收的时候,指定结果集和总数,extjs的分页栏就可以显示总数了。


//创建数据源  
            var store = Ext.create(  
                    'Ext.data.Store',  
                    {  
                        model:'User',  
                        //设置分页大小  
                        pageSize:5,  
                        proxy: {  
                            type: 'ajax',  
                            url : 'pageServlet',  
                            reader: {  
                                //数据格式为json  
                                type: 'json',  
                                root: 'bugs',  
                                //获取数据总数  
                                totalProperty: 'totalCount'  
                            }  
                        },  
                        autoLoad:true  
                    }  
            );
            
//===================  后台写法 jsp  =====================
//数据总数    
                int total = 0;    
            
                try {    
                    Class.forName("com.mysql.jdbc.Driver");    
                   con = DriverManager.getConnection(    
                            "jdbc:mysql://localhost:3306/test", "root", "1234");    
            
                } catch (ClassNotFoundException e) {    
                    e.printStackTrace();    
                } catch (SQLException e) {    
                    e.printStackTrace();    
                }    
                
                //查询数据总数语句    
               String countSql = "select count(*) from users";    
                try {    
                    pstmt = con.prepareStatement(countSql);    
                    rs = pstmt.executeQuery();    
                    while(rs.next()){    
                        total = rs.getInt(1);    
                    }    
                } catch (SQLException e) {    
                    e.printStackTrace();    
                }    
                    
                //分页查询语句    
                String sql = "select * from users limit " + start + ", " + limit;    
                try {    
                    pstmt = con.prepareStatement(sql);    
                    rs = pstmt.executeQuery();    
                    sb = new StringBuilder();    
                    //设置json数据格式    
                    sb.append("{totalCount:"+total+",bugs:[");    
                    while (rs.next()) {    
                        sb.append("{");    
                        sb.append("name:" + "\'" + rs.getString(1) + "\',");    
                       sb.append("sex:" + "\'" + rs.getString(2) + "\',");    
                        sb.append("age:" + "\'" + rs.getString(3) + "\'");    
                        sb.append("},");    
                    }    
                } catch (SQLException e) {    
                    e.printStackTrace();    
                }    
                try {    
                    rs.close();    
                } catch (SQLException e) {    
                    e.printStackTrace();    
                }    
                String json = sb.substring(0, sb.length() - 1);    
                json += "]}";    
                    
        System.out.println(json);
更多追问追答
追问

我没用用后台代码,我用的是固定的一个data文件写的这样也会错啊?

追答
请看我给你说的原理。很详细了。
你对比一下你的store和我贴给你的store。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式