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了,总算搞定了,不过还是要感谢各位帮忙!

[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]

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

改为:

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

底部的gv.render(); 去掉

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

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'}]
)

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

我试了,行.

在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]

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测试过没问题

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

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

[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

我把我的代码都发上去,你看看,我是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]

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]