ext中store读值的问题

Mathilna 2010-06-17 04:45:17
store声明:
var jtbcs=new Ext.data.JsonStore({
autoLoad:true,
proxy:new Ext.data.HttpProxy({
method:'GET',
url:'Action/JKDA/grjkda_jktjb.aspx?type=listJtbcs'
}),
reader:new Ext.data.JsonReader({
root:'rows',
totalProperty:'totalCount',
fields: [
{name: 'JCRQ1',mapping:'JCRQ1',type:'date'},//建床日期
{name: 'CCRQ1',mapping:'CCRQ1',type:'date'},//撤床日期
{name: 'YY',mapping:'YY'},//原因
{name: 'YLJGMC',mapping:'YLJGMC'},//医疗机构名称
{name: 'BAH',mapping:'BAH'}//病案号
]
})
});
grid的声明:
var jtbcsgrid = new Ext.grid.EditorGridPanel({
autoEncode:true,
store:jtbcs,
frame:true,
width:600,
height:200,
anchor:'93%',
clicksToEdit:1,
columns: [
{header: "建床日期", width: 100, sortable: true, dataIndex:"JCRQ1",renderer:dateRender, editor:new Ext.grid.GridEditor(new Ext.form.DateField({format:'Y-m-d',allowBlank:true}))},
{header: "撤床日期", width: 100, sortable: true,dataIndex:"CCRQ1",renderer:dateRender,editor:new Ext.grid.GridEditor(new Ext.form.DateField({format:'Y-m-d',allowBlank:true}))},
{header: "原因", width: 150, sortable: true,dataIndex:"YY",editor:new Ext.grid.GridEditor(new Ext.form.TextField({allowBlank:true}))},
{header: "医疗机构", width: 150, sortable: true,dataIndex:"YLJGMC",editor:new Ext.grid.GridEditor(new Ext.form.TextField({allowBlank:true}))},
{header: "病案号", width: 100, sortable: true,dataIndex:"BAH",editor:new Ext.grid.GridEditor(new Ext.form.TextField({allowBlank:true}))}
],
store:jtbcs,
stripeRows: true
});
重载store:
jtbcs.reload({callback:function(){alert(this.getTotalCount())}}); 返回值为0
而事实上,后台已经把值打印出来了,打印的内容为:
{totalCount:2,rows:[{"JCRQ1":"2010-06-16","YLJGMC":"5","JCRQ":"2010-6-16 0:00:00","CCRQ1":"2010-06-12","JTBCS_ID":"52","GRJKDABH":"奥斯丁发生点","CCRQ":"2010-6-12 0:00:00","YY":"4","BAH":"6"},{"JCRQ1":"2010-06-08","YLJGMC":"2","JCRQ":"2010-6-8 0:00:00","CCRQ1":"2010-06-07","JTBCS_ID":"51","GRJKDABH":"奥斯丁发生点","CCRQ":"2010-6-7 0:00:00","YY":"1","BAH":"3"}]}
屏幕上没有显示,请各位高手帮忙看下,有哪一点代码不明确的请提出来。
...全文
267 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
清晨v 2010-06-18
  • 打赏
  • 举报
回复
store这样定义!

var jtbcs=new Ext.data.JsonStore({
autoLoad:true,
proxy:new Ext.data.HttpProxy({
method:'GET',
url:'Action/JKDA/grjkda_jktjb.aspx?type=listJtbcs'
}),
root:'rows',
totalProperty:'totalCount',
fields: [
{name: 'JCRQ1',mapping:'JCRQ1',type:'date'},//建床日期
{name: 'CCRQ1',mapping:'CCRQ1',type:'date'},//撤床日期
{name: 'YY',mapping:'YY'},//原因
{name: 'YLJGMC',mapping:'YLJGMC'},//医疗机构名称
{name: 'BAH',mapping:'BAH'}//病案号
]

});



既然用的是JsonStore就不能用jsonReader,jsonStore默认的就是jsonReader!你先试试看,记得我以前也遇到过这问题!
hoojo 2010-06-18
  • 打赏
  • 举报
回复

var jtbcs=new Ext.data.JsonStore({
autoLoad:true,//这里有自动加载,下面就不需要reload了
proxy:new Ext.data.HttpProxy({
method:'GET',
url:'Action/JKDA/grjkda_jktjb.aspx?type=listJtbcs'
}),
reader:new Ext.data.JsonReader({
root:'rows',
totalProperty:'totalCount',
fields: [
{name: 'JCRQ1',mapping:'JCRQ1',type:'date'},//建床日期
{name: 'CCRQ1',mapping:'CCRQ1',type:'date'},//撤床日期
{name: 'YY',mapping:'YY'},//原因
{name: 'YLJGMC',mapping:'YLJGMC'},//医疗机构名称
{name: 'BAH',mapping:'BAH'}//病案号
]
})
});
grid的声明:
var jtbcsgrid = new Ext.grid.EditorGridPanel({
autoEncode:true,
store:jtbcs,
frame:true,
width:600,
height:200,
anchor:'93%',
clicksToEdit:1,
columns: [
{header: "建床日期", width: 100, sortable: true, dataIndex:"JCRQ1",renderer:dateRender, editor:new Ext.grid.GridEditor(new Ext.form.DateField({format:'Y-m-d',allowBlank:true}))},
{header: "撤床日期", width: 100, sortable: true,dataIndex:"CCRQ1",renderer:dateRender,editor:new Ext.grid.GridEditor(new Ext.form.DateField({format:'Y-m-d',allowBlank:true}))},
{header: "原因", width: 150, sortable: true,dataIndex:"YY",editor:new Ext.grid.GridEditor(new Ext.form.TextField({allowBlank:true}))},
{header: "医疗机构", width: 150, sortable: true,dataIndex:"YLJGMC",editor:new Ext.grid.GridEditor(new Ext.form.TextField({allowBlank:true}))},
{header: "病案号", width: 100, sortable: true,dataIndex:"BAH",editor:new Ext.grid.GridEditor(new Ext.form.TextField({allowBlank:true}))}
],
//store:jtbcs,上面有了store,这里不要
stripeRows: true
});
重载store:
jtbcs.reload({callback:function(){alert(this.getTotalCount())}}); 返回值为0

把你的json字符串拿到firebug下运行了,发现有换行符号。这个要去掉,在输出json字符串的时候
不要带ln这种输出。如:println/writeln 应该用print/write
Mathilna 2010-06-18
  • 打赏
  • 举报
回复
问题和解决方法由9楼仁兄给出,非常感谢!
也谢谢各位的捧场,谢谢!
zoujp_xyz 2010-06-17
  • 打赏
  • 举报
回复
rows:[]
应该是{}吧
zoujp_xyz 2010-06-17
  • 打赏
  • 举报
回复
这种情况通常是返回的格式不对引起的。楼主仔细看看
Mathilna 2010-06-17
  • 打赏
  • 举报
回复
回四楼:
没有用,数据读不到jtbcs里面。而且这个store是在点击某个按钮后才能加载的。
mzoy 2010-06-17
  • 打赏
  • 举报
回复
在var jtbcs最后加个jtbcs.load();
没有这个数据肯家不显示的
Mathilna 2010-06-17
  • 打赏
  • 举报
回复
删除了一个store:jtbcs,没有变化
1楼的,请问jtbcs.load();加在哪。
power0227 2010-06-17
  • 打赏
  • 举报
回复
你写了2个 store:jtbcs,
ad0128 2010-06-17
  • 打赏
  • 举报
回复

加上jtbcs.load();
楼主,代码中多了一个store:jtbcs,

52,792

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧