Treegrid分页的分页其实就是tree的顶级节点分页,下面的子节点其实是不分页的...
js
01 | $( "#tt" ).treegrid({ |
02 | url: 'treegrid-data.php' , |
03 | idField: 'areaid' , |
04 | treeField: 'name' , |
05 | rownumbers: true , |
06 | pagination: true , |
07 | fitColumns: true , |
08 | autoRowHeight: false , |
09 | onLoadSuccess: function () { |
10 | delete $( this ).treegrid( 'options' ).queryParams[ 'id' ]; |
11 | } |
12 | }); |
后台处理:
01 | <?php |
02 | $parentid = isset( $_POST [ 'id' ]) ? $_POST [ 'id' ] : 0; |
03 | $page = $_POST [ 'page' ]; |
04 | $rows = $_POST [ 'rows' ]; |
05 | $start = ( intval ( $page )-1)* intval ( $rows ); |
06 |
07 | $mysql = new SaeMysql(); |
08 | $sql = "select CASE WHEN (SELECT COUNT(1) FROM area WHERE parentid = a.areaid) > 0 THEN 'closed' ELSE 'open' END 'state' , a.* from area a where parentid=$parentid order by vieworder" ; |
09 | //判断是否是顶级节点,是顶级节点则加入分页 |
10 | if ( $parentid == 0){ |
11 | $sql = $sql . " limit $start,$rows" ; |
12 | } |
13 | $data = $mysql ->getData( $sql ); |
14 |
15 | if ( $parentid == 0){ |
16 | //顶级节点分页需要查询总条数 |
17 | $sql = "select COUNT(1) 'count' from area WHERE parentid = 0" ; |
18 | $ct = $mysql ->getVar( $sql ); |
19 | $pdate = array ( |
20 | 'total' => $ct , |
21 | 'rows' => $data |
22 | ); |
23 | echo json_encode( $pdate ); |
24 | } else { |
25 | echo json_encode( $data ); |
26 | } |