我的js代码:
[code="java"]
Ext.BLANK_IMAGE_URL = contextPath
+ '/resources/ext2/resources/images/default/s.gif';
Ext.QuickTips.init();
var listgrid;// 结果列表
var defaultFilter = new Array();// 默认过滤条件
defaultFilter.push({
'name': '1',
'op': '=',
'stringValue': '1'
});
var filter = new Array();// 列表条件
var criterions;// 参数
var ds;// 数据源
var columnModel;// 列表列
//var rownumber = new Ext.grid.RowNumberer(); //自动行号
var gridPageSize = 15;
var tabpanlid = '';
var dispcolor = false;
/*************** 初始化数据源 ***********************/
//列表的列 列准备
var recordType = Ext.data.Record.create([{
name : 'rownumber',
type : 'string'
},{//单位id
name : "dwid",
type : "string"
}, {//单位名称
name : "dwmc",
type : "string"
}, {//信息总数
name : "xxzs",
type : "int"
}, {//采纳数量
name : "cnsl",
type : "int"
}, {//评分总和
name : "pfzh",
type : "int"
}]);
//流程list数据或取 数据准备
var proxy = new Ext.data.DWRProxy(dwrXxsbService.getXxtjList, true, []); //后面贴出 getXxtjList方法的代码
ds = new Ext.data.Store({
proxy : proxy,
reader : new Ext.data.ListRangeReader({
id : 'dwid',
totalProperty : 'totalSize'
}, recordType),
remoteSort : true
});
proxy.on('beforeload', function(proxy, params) {
params.args = criterions;
return true;
});
//list数据排序
//ds.setDefaultSort("cnsl", "desc");
/*******************第一部分 查询输出 **********************/
//查询条件 输出
var serchPanel = new Ext.Panel({
title : '信息统计',
border : true,
// autoHeight:true,
bodyStyle : 'padding:6px 0px 3px 0px',
collapsible : true,
layout : 'column',
items : [{
//经办开始时间
columnWidth : .21,
layout : 'form',
border : false,
items : [{
//上报开始时间
xtype : 'datefield',
name : 'fosbtime',
altFormats : 'Y-m-d',
triggerClass : 'date-trigger',
labelSeparator : ':',
fieldLabel : '上报日期',
format : "Y-m-d",
anchor : '100%',
readOnly : true
}]
}, {
//上报结束时间
columnWidth : .21,
layout : 'form',
border : false,
items : [{
xtype : 'datefield',
name : 'tosbtime',
altFormats : 'Y-m-d',
triggerClass : 'date-trigger',
labelSeparator : '',// 替换冒号
fieldLabel : ' 至',
format : "Y-m-d",
anchor : '100%',
readOnly : true
}]
}, {
columnWidth : .06,
layout : 'form',
items : [{
xtype : 'button',
text : '查询',
handler : searchAction
}]
}, {
columnWidth : .06,
layout : 'form',
items : [{
xtype : 'button',
text : '重置',
handler : function() {
nav.form.reset();
}
}]
}]
})
//查询按钮onclick
function searchAction() {
//用于查询的代码,这里省略
}
/**********************第二部分 list数据(listtab)********************/
//list显示列名称
function getColumnModel() {
columnModel = new Ext.grid.ColumnModel([{
width : 23,
id : 'rownumber',
align : 'center',
dataIndex : 'rownumber',
sortable : false
},{
// header:'选择',
id : 'checkall',
width : 30,
align : 'center',
dataIndex : 'dwid',
sortable : false
//renderer : checkall
},{
id : 'dwmc',
header : '上报单位',
width : 300,
align : 'center',
sortable : false,
dataIndex : 'dwmc'
//renderer : titleFormater
},{
id : 'xxzs',
header : '信息条数',
width : 100,
align : 'center',
sortable : false,
dataIndex : 'xxzs'
},{
id : 'cnsl',
header : '采纳数量',
width : 100,
align : 'center',
sortable : false,
dataIndex : 'cnsl'
},{
id : 'pfzh',
header : '评分总和',
width : 100,
align : 'center',
sortable : false,
dataIndex : 'pfzh'
}]);
//columnModel.defaultSortable = true;
return columnModel;
}
// 查询结果列表
var listgrid = new Ext.grid.GridPanel({
store: ds,
cm: getColumnModel(),
border: false,
loadMask: {
msg: '数据载入中...'
},
stripeRows: true,
autoExpandColumn: 'dwmc',
height: 436,
bodyStyle: 'width:100%',
tbar: new Ext.PagingToolbar({
pageSize: gridPageSize,
store: ds,
displayInfo: true,
displayMsg: '显示记录 {0} - {1} 共 {2} 条',
emptyMsg: "没有待显示的记录",
firstText: "首页",
lastText: "末页",
nextText: "下一页",
prevText: "上一页",
refreshText: "刷新",
afterPageText: '页 共{0}页',
beforePageText: '第',
items: [{
//按钮
text: '导出EXCEL',
cls: 'x-btn-text-icon',
icon: 'resources/adk/images/ex.gif'
//handler: exportToExcel
}]
}),
bbar: new Ext.PagingToolbar({
pageSize: gridPageSize,
store: ds,
displayInfo: true,
displayMsg: '显示记录 {0} - {1} 共 {2} 条',
emptyMsg: "没有待显示的记录",
firstText: "首页",
lastText: "末页",
nextText: "下一页",
prevText: "上一页",
refreshText: "刷新",
afterPageText: '页 共{0}页',
beforePageText: '第',
items: [{
text: '导出EXCEL',
cls: 'x-btn-text-icon',
icon: 'resources/adk/images/ex.gif'
//handler: exportToExcel
}]
})
});
var listpanel = new Ext.Panel({
title: '统计结果',//标题
//collapsible: true,
bodyStyle: 'padding:0px 0px 0px 0px',
//width:400,
height: '100%',
items: [listgrid]
});
/********************整体输出内容********************/
//整体输出内容 菜单,查询,列表,上下翻页等工具条
var nav = new Ext.form.FormPanel({
frame : true,
waitMsgTarget : true,
border : true,
// width: 600,
x : 0,
y : 0,
// bodyStyle:'padding:0px 0px 0px 0px',
labelWidth : 65,
renderTo : Ext.getBody(),
//items : [serchPanel, listtab]
items : [serchPanel, listpanel]
});
filter.push({
"name": 'parent',//单位过滤
"op": 'like',
"stringValue": 'FORESTRY_SWGL_XXSBDW_%'
});
filter.push({
"name": 'KZHYSHZX3',//流程是否结束标识位
"op": '=',
"stringValue": 1
});
criterions = [filter];
gridPageSize = listgrid.getBottomToolbar().sizefield.dom.value;
ds.load({
params : {
start : 0,
limit : gridPageSize
}
});
//helperviewtype = viewtype;
helperDS = ds;
[/code]
取数据的方法:
[code="java"]
...
/**
* 获取信息统计列表
*
* @param expressions
* @param start
* @param pageSize
* @param orderBy
* @return
*/
@SuppressWarnings("unchecked")
public ListRange getXxtjList(Expression[] expressions, int start, int pageSize, String orderBy) {
ListRange result = new ListRange();
List<Expression> exp1 = new ArrayList<Expression>();
List<Expression> exp2 = new ArrayList<Expression>();
if (expressions != null && expressions.length != 0) {
for (int i = 0; i < expressions.length; i++) {
String name = expressions[i].getName();
if (name.equals("parent")) { //单位类型
exp1.add(expressions[i]);
} else {
exp2.add(expressions[i]);
}
}
}
Expression[] expression1 = new Expression[exp1.size()]; //单位类型过滤
Expression[] expression2 = new Expression[exp2.size()]; //上报信息过滤
for (int i=0; i<exp1.size(); i++) {
expression1[i] = exp1.get(i);
}
for (int i=0; i<exp2.size(); i++) {
expression2[i] = exp2.get(i);
}
try {
int totalSize = xxtjService.count(expression1);
List<XxtjBean> list = xxtjService.find(expression1, expression2, start, pageSize, orderBy);
result.setData(list.toArray());
result.setTotalSize(totalSize); //程序跟踪至这里,数据均能正常取得,见附件图。
} catch (Exception ex) {
ex.printStackTrace();
}
return result;
}
...
[/code]
grid数据容器:
[code="java"]
package com.rizon.apollo.services.ui.dwr;
import java.io.Serializable;
import org.directwebremoting.annotations.DataTransferObject;
import org.directwebremoting.annotations.RemoteProperty;
/**
- 用于向客户端ext传递grid数据的容器 *
-
*/
@DataTransferObject
public class ListRange implements Serializable {
@RemoteProperty
private Object[] data;@RemoteProperty
private int totalSize;// accessors for both properties
public Object[] getData() {
return data;
}public void setData(Object[] data) {
this.data = data;
}public int getTotalSize() {
return totalSize;
}public void setTotalSize(int totalSize) {
this.totalSize = totalSize;
}
}
[/code]
[img]/upload/attachment/138512/b387e66f-35e6-33a6-9c63-2d9dc43bf3e5.gif[/img]
[img]/upload/attachment/138514/7e640a48-82b5-3d2c-b824-05cdda3b0aa0.gif[/img]
显示无数据:
[img]/upload/attachment/138518/4c7ac458-1d8a-3e26-8f9f-b10cf699cb2b.gif[/img]