2024年2月3日发(作者:)

Ext结合Dwr带分组分页的GridPanel

主要包含:浏览页(),脚步文件(),dwr分页代理脚本文件(),实体类(),实体管理类(),分页类(),dwr自带(),ext自带(,,)

显示结果:

页面

<%@ page language="java" import=".*" pageEncoding="UTF-8"%>

<%

String path = textPath();

String basePath =

eme()+"://"+verName()+":"+verPort()+path+"/";

%>

结合

文件

y(function() {

var start = 0;

var pageSize = 10;

var sm = new oxSelectionModel();

var cm = new Model([new berer(), sm, {

header : '编号',

dataIndex : 'id1',

sortable : true

}, {

header : '名称',

sortable : true,

dataIndex : 'name1'

}, {

header : '描述',

sortable : true,

dataIndex : 'descn1',

renderer : function(v) {

return "" + v + ""

}

}]);

var recordType = new ([{

name : 'id1',

mapping : 'id',

type : 'int'

}, {

name : 'name1',

mapping : 'name',

type : 'string'

}, {

name : 'descn1',

mapping : 'descn',

type : 'string'

}]);

var proxy = new xy(ers, true);

var ds = new ngStore({

proxy : proxy,

reader : new ngeReader({

id : 'id',

totalProperty : 'totalSize'

}, recordType),

remoteSort : true,

sortInfo : {

field : 'id',

direction : "ASC"

},

groupField : 'name1' // 默认的分组字段

});

({

});

params : {

start : start,

limit : pageSize

},

arg : [],

callback : function(records, options, success) {

('提示', '加载数据成功!');

}

var grid = new nel({

title : 'GridPanel分页',

store : ds,

sm : sm,

cm : cm,

autoWidth : true,

height : 300,

view : new ngView({

sortAscText : '正序排列',

sortDescText : '倒序排列',

columnsText : '列显示/隐藏',

groupByText : '根据本列分组',

showGroupsText : '是否采用分组显示',

groupTextTpl : '{text}(

color=red>{[]} {[ > 1 ? "Items" :

"Item"]})'

}),

bbar : new Toolbar({

pageSize : 10,

store : ds,

displayInfo : true,

displayMsg : '显示第 {0} 条到 {1} 条记录,一共 {2} 条',

emptyMsg : "没有记录",

prevText : "上一页",

nextText : "下一页",

refreshText : "刷新",

lastText : "最后页",

firstText : "第一页",

beforePageText : "当前页",

afterPageText : "共{0}页"

})

});

var win = new ({

title : 'Ext结合Dwr',

frame : true,

height : 350,

width : 500,

plain : true, // 与外面颜色相配

closeAction : 'hide',

layout : 'form',

labelWidth : 65,

defaultType : 'textfield',

items : grid

});

();

});

ListRange类:

import izable;

public class ListRange implements Serializable {

private static final long serialVersionUID = 1L;

private Object[] data;

private int totalSize;

public Object[] getData() {

return data;

}

public void setData(Object[] data) {

= data;

}

public int getTotalSize() {

return totalSize;

}

public void setTotalSize(int totalSize) {

ize = totalSize;

}

}

File实体类:

public class File {

private int id;

private String name;

private String descn;

public File(int id, String name, String descn) {

= id;

= name;

= descn;

}

public int getId() {

}

return id;

}

public void setId(int id) {

= id;

}

public String getName() {

return name;

}

public void setName(String name) {

= name;

}

public String getDescn() {

return descn;

}

public void setDescn(String descn) {

= descn;

}

FileManager类:

public class FileManager {

public ListRange getPapers(int start, int count, String orderBy) {

/*n("start=" + start + ";count=" + count +" " + orderBy);*/

ListRange listRange = new ListRange();

Object[] root = new Object[10];

if(start < 8){

Object[] data = {

new File(1,"name1","descn1"),

new File(2,"name2","descn2"),

new File(3,"name3","descn3"),

new File(4,"name4","descn4"),

new File(5, "name5", "descn5") ,

new File(6,"name1","descn1"),

new File(7,"name2","descn2"),

new File(8,"name3","descn3"),

new File(9,"name4","descn4"),

new File(10, "name5", "descn5")

};

root = data;

}

}else if(start >9 && start < 20){

Object[] data = {

new File(11,"name1","descn1"),

new File(21,"name2","descn2"),

new File(31,"name3","descn3"),

new File(41,"name4","descn4"),

new File(51, "name5", "descn5") ,

new File(61,"name1","descn1"),

new File(71,"name2","descn2"),

new File(81,"name3","descn3"),

new File(91,"name4","descn4"),

new File(101, "name5", "descn5")

};

root = data;

}else{

Object[] data = {

new File(12,"name1","descn1"),

new File(22,"name2","descn2"),

new File(32,"name3","descn3"),

new File(42,"name4","descn4"),

new File(52, "name5", "descn5") ,

new File(62,"name1","descn1"),

new File(72,"name2","descn2"),

new File(82,"name3","descn3"),

new File(92,"name4","descn4"),

new File(102, "name5", "descn5")

};

root = data;

}

a(root);

alSize(30);

return listRange;

文件:

xy = function(dwrCall, pagingAndSort){

(this);

l = dwrCall;

AndSort = (pagingAndSort!=undefined ? pagingAndSort : true);

};

(xy, oxy, {

load : function(params, reader, callback, scope, arg) {

if(ent("beforeload", this, params) !== false) {

var sort;

if( && ) sort = + ' ' + ;

else sort = '';

var delegate = Delegate(this, [reader, callback, scope,

arg], 1);

var callParams = new Array();

if() {

callParams = ();

}

if(AndSort) {

();

();

(sort);

}

(delegate);

(this, callParams);

} else {

(scope || this, null, arg, false);

}

},

loadResponse : function(listRange, reader, callback, scope, arg) {

var result;

try {

result = (listRange);

} catch(e) {

ent("loadexception", this, null, response, e);

(scope, null, arg, false);

return;

}

(scope, result, arg, true);

},

update : function(dataSet){},

updateResponse : function(dataSet)

{}

});

ngeReader = function(meta, recordType){

(this, meta, recordType);

Type = recordType;

};

(ngeReader, ader, {

getJsonAccessor: function(){

var re = /[[.]/;

return function(expr) {

try {

return((expr))

? new Function("obj", "return obj." + expr)

: function(obj){

return obj[expr];

};

} catch(e){}

return n;

};

}(),

read : function(o){

var recordType = Type, fields = ;

//Generate extraction functions for the totalProperty, the root, the id, and for

each field

if (!) {

if(roperty) {

al = nAccessor(roperty);

}

if(sProperty) {

cess = nAccessor(sProperty);

}

if () {

var g = nAccessor();

= function(rec) {

var r = g(rec);

return (r === undefined || r === "") ? null : r;

};

} else {

= function(){return null;};

}

= [];

for(var i = 0; i < ; i++){

f = [i];

var map = (g !== undefined && g !== null) ?

g : ;

[i] = nAccessor(map);

}

}

var records = [];

var root = , c = , totalRecords = c, success = true;

if(roperty){

var v = parseInt(al(o), 10);

if(!isNaN(v)){

totalRecords = v;

}

}

if(sProperty){

var v = cess(o);

if(v === false || v === 'false'){

success = false;

}

}

for(var i = 0; i < c; i++){

var n = root[i];

var values = {};

var id = (n);

for(var j = 0; j < ; j++){

f = [j];

var v = [j](n);

values[] = t((v !== undefined) ? v : tValue);

}

var record = new recordType(values, id);

records[i] = record;

}

return {

success : success,

records : records,

totalRecords : totalRecords

};

}

});

文件:

xmlns="/xml/ns/javaee"

xmlns:xsi="/2001/XMLSchema-instance"

xsi:schemaLocation="/xml/ns/javaee

/xml/ns/javaee/web-app_2_">

dwr-invoker

vlet

debug

true

dwr-invoker

/dwr/*

文件: