matrix1984
2009-08-21 10:44
浏览 257

grid数据已取得,但是显示不出来,且没有报js错误??!

我的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]

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • iteye_10013 2009-08-21 11:10
    已采纳

    1.用firebug看ajax的response是否有返回json
    --如果没有,检查后台是否报错

    2.在store的load事件里面检查store.getCount(),如果为0,说明是reader解析json出问题.

    点赞 打赏 评论
  • wanghaolovezlq 2009-08-21 10:57

    你在前台js里打印看ext有没获取到数据

    点赞 打赏 评论

相关推荐 更多相似问题