weixin_42317169
2009-07-03 12:03 阅读 487

Ext.grid.GridPanel不显示数据怎么解决?

Ext.onReady(function() {

        var ds = new Ext.data.Store({
            proxy: new Ext.data.HttpProxy({ url: "GetQuestionList.aspx", method: 'GET' }),
            reader: new Ext.data.JsonReader(
                { root: 'data', totalProperty: 'totalCount' },
                [{ name: 'title', mapping: 'title' }, { name: 'type', mapping: 'type' }, { name: 'ct', mapping: 'ct' }, { name: 'state', mapping: 'state'}]
            )
        });

        var pagingBar = new Ext.PagingToolbar({
            pageSize: 5,
            store: ds,
            displayInfo: true,
            displayMsg: 'Displaying topics {0} - {1} of {2}',
            emptyMsg: "No topics to display"
        });

        var gv = new Ext.grid.GridPanel({
            title: '问题列表',
            el: 'divGvList',
            width: 800,
            height: 500,
            autoScroll: true,
            loadMask: { msg: '正在加载数据,请稍侯……' },
            store: ds,
            columns: [
                new Ext.grid.RowNumberer(),
                { header: '标题', dataIndex: 'title', sortable: true },
                { header: '分类', dataIndex: 'type', sortable: true },
                { header: '时间', dataIndex: 'ct', sortable: true, renderer: Ext.util.Format.dateRenderer('Y.m.d') },
                { header: '回复状态', dataIndex: 'state', sortable: true }
            ],
            bbar: pagingBar
        });
        gv.render();
        ds.load({ params: { start: 0, limit: 5} });
    });

这个GetQuestionList.aspx页面我单独用在ie地址栏输入GetQuestionList.aspx?start=0&limit=5,页面输出如下数据
{ 'data': [
{ 'title': '0_标题', 'type': '分类', 'ct': '2009-7-3 11:49:58', 'state': true },
{ 'title': '1_标题', 'type': '分类', 'ct': '2009-7-3 11:49:58', 'state': true },
{ 'title': '2_标题', 'type': '分类', 'ct': '2009-7-3 11:49:58', 'state': true },
{ 'title': '3_标题', 'type': '分类', 'ct': '2009-7-3 11:49:58', 'state': true },
{ 'title': '4_标题', 'type': '分类', 'ct': '2009-7-3 11:49:58', 'state': true },
{ 'title': '5_标题', 'type': '分类', 'ct': '2009-7-3 11:49:58', 'state': true },
{ 'title': '6_标题', 'type': '分类', 'ct': '2009-7-3 11:49:58', 'state': true },
{ 'title': '7_标题', 'type': '分类', 'ct': '2009-7-3 11:49:58', 'state': true },
{ 'title': '8_标题', 'type': '分类', 'ct': '2009-7-3 11:49:58', 'state': true },
{ 'title': '9_标题', 'type': '分类', 'ct': '2009-7-3 11:49:58', 'state': true }
],
'totalCount': 10
}
不知道为什么就是显示不了数据,请大家帮忙看看到底问题出在哪了?
[b]问题补充:[/b]
我试了,还是不行
[b]问题补充:[/b]
郁闷,还是不行,不知道怎么回事
现在我加了alert(ds.getCount());,弹出的提示是0
是不是表示数据集中没有数据?
[b]问题补充:[/b]
都不是你们说的这些问题,我调试看了,可能是异步请求的问题
ds.load({
params: { start: 0, limit: 5 },
callback: function(r, options, success) {
alert(r.length);
if (success) {
alert(r.length);
} else { alert("加载数据失败,无对应数据或者系统出现异常!");}
}
});
我这样执行后,r.length总是0, success的值为false
有没有人知道是怎么回事
[b]问题补充:[/b]
问题解决了,GetQuestionList.aspx页面代码Response.Write(jsonStr);执行后还要加上 Response.Flush(); Response.Close();这两句代码,数据才能发送到客户端,那个回调函数success的值为true了,总算搞定了,不过还是要感谢各位帮忙!

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

11条回答 默认 最新

  • 已采纳
    zhoujuan520 zhoujuan520 2009-07-03 13:15

    [code="js"]//不一定所有对象都要分开写,有必要的才分开写.能不分开就不要分开.
    //要渲染到什么地方.最好在组件代码里面renderTo来渲染.
    Ext.onReady(function() {
    var ds = new Ext.data.Store({
    url: "GetQuestionList.aspx",//能简写的地方就简写:)
    reader: new Ext.data.JsonReader({
    root: 'data',
    totalProperty: 'totalCount'
    },
    [{
    name: 'title',
    mapping: 'title'
    },
    {
    name: 'type',
    mapping: 'type'
    },
    {
    name: 'ct',
    mapping: 'ct'
    },
    {
    name: 'state',
    mapping: 'state'
    }])
    });
    var gv = new Ext.grid.GridPanel({
    title: '问题列表',
    renderTo: document.body,
    width: 800,
    height: 500,
    autoScroll: true,
    loadMask: {
    msg: '正在加载数据,请稍侯……'
    },
    store: ds,
    columns: [new Ext.grid.RowNumberer(), {
    header: '标题',
    dataIndex: 'title',
    sortable: true
    },
    {
    header: '分类',
    dataIndex: 'type',
    sortable: true
    },
    {
    header: '时间',
    dataIndex: 'ct',
    sortable: true,
    renderer: Ext.util.Format.dateRenderer('Y.m.d')
    },
    {
    header: '回复状态',
    dataIndex: 'state',
    sortable: true
    }],
    bbar: new Ext.PagingToolbar({
    pageSize: 5,
    store: ds,
    displayInfo: true,
    displayMsg: 'Displaying topics {0} - {1} of {2}',
    emptyMsg: "No topics to display"
    })
    });
    ds.load({
    params: {
    start: 0,
    limit: 5
    }
    });
    });[/code]

    点赞 评论 复制链接分享
  • iteye_10013 iteye_10013 2009-07-03 12:15

    var gv = new Ext.grid.GridPanel({
    title: '问题列表',
    el: 'divGvList',

    改为:

    var gv = new Ext.grid.GridPanel({
    title: '问题列表',
    renderTo: 'divGvList',

    底部的gv.render(); 去掉

    点赞 评论 复制链接分享
  • iteye_10013 iteye_10013 2009-07-03 12:16

    另外,你的时间渲染的不对

    reader: new Ext.data.JsonReader(
    { root: 'data', totalProperty: 'totalCount' },
    [{ name: 'title', mapping: 'title' }, { name: 'type', mapping: 'type' }, { name: 'ct', mapping: 'ct' }, { name: 'state', mapping: 'state'}]
    )

    改为:

    reader: new Ext.data.JsonReader(
    { root: 'data', totalProperty: 'totalCount' },
    [{ name: 'title', mapping: 'title' }, { name: 'type', mapping: 'type' }, { name: 'ct', mapping: 'ct',type:'date',dateFormat:'Y-m-d H:i:s' }, { name: 'state', mapping: 'state'}]
    )

    点赞 评论 复制链接分享
  • iteye_10013 iteye_10013 2009-07-03 12:20

    看错了,你的时间格式是2009-7-3 11:49:58
    应该改为{ name: 'ct', mapping: 'ct',type:'date',dateFormat:'Y-n-j H:i:s' }

    点赞 评论 复制链接分享
  • iteye_10013 iteye_10013 2009-07-03 12:49

    我试了,行.

    在html中有



    我的测试数据json.txt
    { 'data': [
    { 'title': '0_标题', 'type': '分类', 'ct': '2009-7-3 11:49:58', 'state': true },
    { 'title': '1_标题', 'type': '分类', 'ct': '2009-7-3 11:49:58', 'state': true },
    { 'title': '2_标题', 'type': '分类', 'ct': '2009-7-3 11:49:58', 'state': true },
    { 'title': '3_标题', 'type': '分类', 'ct': '2009-7-3 11:49:58', 'state': true },
    { 'title': '4_标题', 'type': '分类', 'ct': '2009-7-3 11:49:58', 'state': true },
    { 'title': '5_标题', 'type': '分类', 'ct': '2009-7-3 11:49:58', 'state': true },
    { 'title': '6_标题', 'type': '分类', 'ct': '2009-7-3 11:49:58', 'state': true },
    { 'title': '7_标题', 'type': '分类', 'ct': '2009-7-3 11:49:58', 'state': true },
    { 'title': '8_标题', 'type': '分类', 'ct': '2009-7-3 11:49:58', 'state': true },
    { 'title': '9_标题', 'type': '分类', 'ct': '2009-7-3 11:49:58', 'state': true }
    ],
    'totalCount': 10
    }

    js代码:
    [code="javascript"]
    Ext.onReady(function() {

            var ds = new Ext.data.Store({
                proxy: new Ext.data.HttpProxy({ url: "json.txt", method: 'GET' }),
                reader: new Ext.data.JsonReader(
                    { root: 'data', totalProperty: 'totalCount' },
                    [{ name: 'title', mapping: 'title' }, { name: 'type', mapping: 'type' }, { name: 'ct', mapping: 'ct',type:'date',dateFormat:'Y-n-j H:i:s' }, { name: 'state', mapping: 'state'}]
                )
            });
    
            var pagingBar = new Ext.PagingToolbar({
                pageSize: 5,
                store: ds,
                displayInfo: true,
                displayMsg: 'Displaying topics {0} - {1} of {2}',
                emptyMsg: "No topics to display"
            });
    
            var gv = new Ext.grid.GridPanel({
                title: '问题列表',
                renderTo: 'divGvList',
                width: 800,
                height: 500,
                autoScroll: true,
                loadMask: { msg: '正在加载数据,请稍侯……' },
                store: ds,
                columns: [
                    new Ext.grid.RowNumberer(),
                    { header: '标题', dataIndex: 'title', sortable: true },
                    { header: '分类', dataIndex: 'type', sortable: true },
                    { header: '时间', dataIndex: 'ct', sortable: true, renderer: Ext.util.Format.dateRenderer('Y.m.d') },
                    { header: '回复状态', dataIndex: 'state', sortable: true }
                ],
                bbar: pagingBar
            });
            //gv.renderTo(document.body)//.render();
            ds.load({ params: { start: 0, limit: 5} });
        }); 
    

    [/code]

    点赞 评论 复制链接分享
  • iteye_20589 iteye_20589 2009-07-03 14:24

    1.时间格式化改成这样: { header: '时间', dataIndex: 'ct', sortable: true,dateFormat:'Y-n-j H:i:s'},
    2.把你的GetQuestionList.aspx里的数据改成这样就行了(去掉'title','type'等的'')代码如下
    [code="java"] { 'data': [
    { title: '0_标题', type: '分类', ct: '2009-7-3 11:49:58', state: true },
    { title: '1_标题', type: '分类', ct: '2009-7-3 11:49:58', state: true },
    { title: '2_标题', type: '分类', ct: '2009-7-3 11:49:58', state: true },
    { title: '3_标题', type: '分类', ct: '2009-7-3 11:49:58', state: true },
    { title: '4_标题', type: '分类', ct: '2009-7-3 11:49:58', state: true },
    { title: '5_标题', type: '分类', ct: '2009-7-3 11:49:58', state: true },
    { title: '6_标题', type: '分类', ct: '2009-7-3 11:49:58', state: true },
    { title: '7_标题', type: '分类', ct: '2009-7-3 11:49:58', state: true },
    { title: '8_标题', type: '分类', ct: '2009-7-3 11:49:58', state: true },
    { title: '9_标题', type: '分类', ct: '2009-7-3 11:49:58', state: true }
    ],
    'totalCount':3
    } [/code]
    3.在服务上运行,不要直接打开..我在tomcat测试过没问题

    点赞 评论 复制链接分享
  • iteye_20589 iteye_20589 2009-07-03 14:28

    哦..sorry,[code="java"]'totalCount':3[/code]
    要改成
    [code="java"]'totalCount':10[/code],之前测的时候只弄了三个好删除''

    点赞 评论 复制链接分享
  • zhoujuan520 zhoujuan520 2009-07-03 15:02

    你断点看下,能不能进入你要查询的方法

    点赞 评论 复制链接分享
  • iteye_20589 iteye_20589 2009-07-03 15:07

    [quote]都不是你们说的这些问题,我调试看了,可能是异步请求的问题
    [/quote]

    我觉得你没有按照我上面的做吧..我测试了你给的[code="java"]
    ds.load({
    params: { start: 0, limit: 5 },
    callback: function(r, options, success) {
    alert(r.length);
    if (success) {
    alert(r.length);
    } else { alert("加载数据失败,无对应数据或者系统出现异常!");}
    }
    });
    [/code]
    弹出来的结果是两个10的对话框,说明r.length的结果就是10

    点赞 评论 复制链接分享
  • iteye_20589 iteye_20589 2009-07-03 15:08

    我把我的代码都发上去,你看看,我是Tomcat下运行的..主文件
    [code="java"]




    <script type="text/javascript" src="js/ext-all.js"></script>
    
    
    
    <script language="javascript">
    Ext.onReady(function() { 
    
            var ds = new Ext.data.Store({ 
                proxy: new Ext.data.HttpProxy({ url: "GetQuestionList.aspx" }), 
                reader: new Ext.data.JsonReader( 
                    { root: 'data', totalProperty: 'totalCount' }, 
                    [{ name: 'title', mapping: 'title' }, { name: 'type', mapping: 'type' }, { name: 'ct', mapping: 'ct' }, { name: 'state', mapping: 'state'}] 
                ) 
            }); 
    
            var pagingBar = new Ext.PagingToolbar({ 
                pageSize: 5, 
                store: ds, 
                displayInfo: true, 
                displayMsg: 'Displaying topics {0} - {1} of {2}', 
                emptyMsg: "No topics to display" 
            }); 
    
            var gv = new Ext.grid.GridPanel({ 
                title: '问题列表', 
                el: 'divGvList', 
                width: 800, 
                height: 500, 
                autoScroll: true, 
                loadMask: { msg: '正在加载数据,请稍侯……' }, 
                store: ds, 
                columns: [ 
                    new Ext.grid.RowNumberer(), 
                    { header: '标题', dataIndex: 'title', sortable: true }, 
                    { header: '分类', dataIndex: 'type', sortable: true }, 
                    { header: '时间', dataIndex: 'ct', sortable: true,dateFormat:'Y-n-j H:i:s'}, 
                    { header: '回复状态', dataIndex: 'state', sortable: true } 
                ], 
                bbar: pagingBar 
            }); 
            gv.render(); 
    
           ds.load({ 
                params: { start: 0, limit: 5 }, 
                callback: function(r, options, success) { 
                    alert(r.length); 
                    if (success) { 
                         alert(r.length); 
                    } else { alert("加载数据失败,无对应数据或者系统出现异常!");} 
                } 
            }); 
    
        }); 
    






    [/code]

    点赞 评论 复制链接分享
  • iteye_20589 iteye_20589 2009-07-03 15:09

    GetQuestionList.aspx文件:
    [code="java"]
    { 'data': [
    { title: '0_标题', type: '分类', ct: '2009-7-3 11:49:58', state: true },
    { title: '1_标题', type: '分类', ct: '2009-7-3 11:49:58', state: true },
    { title: '2_标题', type: '分类', ct: '2009-7-3 11:49:58', state: true },
    { title: '3_标题', type: '分类', ct: '2009-7-3 11:49:58', state: true },
    { title: '4_标题', type: '分类', ct: '2009-7-3 11:49:58', state: true },
    { title: '5_标题', type: '分类', ct: '2009-7-3 11:49:58', state: true },
    { title: '6_标题', type: '分类', ct: '2009-7-3 11:49:58', state: true },
    { title: '7_标题', type: '分类', ct: '2009-7-3 11:49:58', state: true },
    { title: '8_标题', type: '分类', ct: '2009-7-3 11:49:58', state: true },
    { title: '9_标题', type: '分类', ct: '2009-7-3 11:49:58', state: true }
    ],
    'totalCount':10
    }
    [/code]

    点赞 评论 复制链接分享

相关推荐