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]