后台action的数据是json格式,在控制台以及firebug中看到都是有的,但就是不在combobox中展现数据?急,求各位大神指导,已被这个问题困扰好久了
action层中的代码:
private String comboJson; public String getComboJson() { return comboJson; } public void setComboJson(String comboJson) { this.comboJson = comboJson; } public String accquireDataTypeData() throws TNBusinessException{ String comboJson = "{total:3,rows:[{"+ "tNDataTPId:'01',DataTpName:'南京'},"+ "{tNDataTPId:'02',DataTpName:'镇江'},"+ "{tNDataTPId:'03',DataTpName:'泰州'}"+ "]}"; setComboJson(comboJson); System.out.println(comboJson); return "combo/DataType"; }
控制台打印结果为:
firebug的结果:
js代码如下:
Ext.define("dataTypeStore",{ extend:"Ext.data.Model", fields:[{name:'DataTpName',mapping:'DataTpName'}, {name:'tNDataTPId',mapping:'tNDataTPId'}] }); var dataTypeData = Ext.create("Ext.data.JsonStore",{ model:"dataTypeStore", proxy: new Ext.data.HttpProxy({ url: 'test/test!accquireDataTypeData.action'//请求路径 }), ) });
{ columnWidth : .25, xtype: 'combobox', name:"combo1", id:"combo"+index, margin: '5 10 5 10', //width: 262, fieldLabel: 'Data Type', labelWidth: 80, mode:"remote",//[local|remote] triggerAction : 'all', valueField:"tNDataTPId", displayField:"DataTpName", store: dataTypeData, //lazyRender:true, //width:300, typeAhead: true, //selectOnFocus:true, allowBlank:false, } } }不知道是否是json数据格式的问题,还是怎么了,每次点击下拉框,都无数据展示,效果如下图:
求各位大神帮忙,小女子感激不尽~
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(12)
回复
可能是我刚刚的那个combobox有问题,我在下面的那个combobox试了下,load了那样的json数据,数据展现了。这种做法不就是将数据在js内写死嘛,之前我写死的时候,是能展现数据的,主要是如果从后台传过来的话,它就不展现,是咋回事呀?求救求救~
回复
你好,我按照你的说法load了那个数据,不展现数据,还报了这样的错:Ext.Error: You are using a ServerProxy but have not supplied it with a url.
dataTypeData.loadData([{data1},{data2},...])先看看能不能显示数据
你好,我按照你说的修改了,这次点击下拉框不是只有一条阴影了,能出现框体,但无数据,请问是咋回事?我已经纠结这个问题很久了,能不能帮帮忙,帮我找找这个错误。。。我是新手,已经纠结很久了。。。先提前说谢谢啦
该问题已解决,错误原因是我从后台传至前台的json数据格式有问题,传到前台之后,还要注意前后台name的对应,我就是有一个大小写没对应,导致数据不展现。
在此,谢谢大大菠萝啦,很细心很细心地给我解惑呢~谢谢谢谢!……
数据格式不对,你这个是要加载在combobox的数据,total,rows什么的没用,可以去掉,形成这样的json:{comboJson:[{data1},{data2},{data3}]},同时proxy里面加个属性reader:{type:'json',root:'comboJson'}
回复
你好,我按照你给的网址,把数据转换为正确的json格式了,放入静态的页面,是能展现出来的,但一从后台调用,就不展现数据,只有下拉框体。。。。
回复
而且 控制台跟firebug是同一个数据
回复
我给你的那个网站只是格式化一下你的JSON数据。让数据好看点。其实数据的内容是没有变的。如果静态有内容。可能是你接受数据的时候存在一些问题。你可以试试ALERT一下。对比一下数据,或者格式化一下firebug的看看?
回复
那个。。。能不能给个QQ号,或者邮箱也可以,我是新手,怕有些问题问出来会被笑话,想私聊
回复
还有你给我的那个格式化网站,也可以检验json数据是否格式正确的,错误的话它不给格式化
应该是格式不对。你去搜索一个 Json格式话。把你返回的数据格式化一下。看是不是你想要的JSON数据。如果是你想要的数据。先把这个数据静态的放在EXT里。看下拉能否显示。。