高手帮忙,实在找不出原因

yekong125 2015-07-24 01:10:15
Extjs的combox组件没有办法加载数据
代码如下:
var deptselect = new Ext.data.Store({
reader:new Ext.data.JsonReader({
root:'root',
fields:['id','name']
}),
proxy:new Ext.data.HttpProxy({
url:'fbinfo.do?method=initDeptCombo'
})
});

var formpanel = Ext.create('InfoFB_FormPanel',{
layout:'form',
labelWidth:80,
labelAlign :'right',
items:[{
layout:'column',
frame:true,
items:[{
xtype:'combo',
id:'fbdept_id',
name:'fbdept',
hiddenName:'sub_fbdept',
columnWidth:.6,
allowBlank:false,
fieldLabel:'反馈科室',
emptyText:'--请选择--',
store:deptselect,
mode:'remote',
loadingText:'loading',
displayField:'name',
valueField:'id',
forceSelection:true,
typeAhead:true
}]
});

var infofbForm = function(){
var infofbWin = Ext.create('hosp.view.InfoFB',{
modal:true,
resizable :false,
constrain:true,
closeAction:'hide',
items:formpanel
});
infofbWin.show();
};
action部分:
public ActionForward initDeptCombo(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
response.setContentType("text/html;charset=utf-8");
PrintWriter out = null;
BrowseSvr bssvr = null;
String json = "";
try{
bssvr = new BrowseSvrImp();
json = bssvr.initDeptCombo();
out = response.getWriter();
out.write(json); //json值:{"root":[{"id":"500","name":"网络管理科"}]}
System.out.println(json);
}catch(MyException e){
throw new MyException("初始化加载部门信息失败!");
}
out.flush();
out.close();

return null;
}
json值:{"root":[{"id":"500","name":"网络管理科"}]}
...全文
208 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
yekong125 2015-07-28
  • 打赏
  • 举报
回复
var deptselect = Ext.create('Ext.data.Store',{
	fields:[
		{name:'id',type:'string'},
		{name:'name',type:'string'}
	],
	proxy:{
		type:'ajax',
		url:'fbinfo.do?method=initDeptCombo',
		reader:{
			type:'json',
			root:'root'
		}
	},
	autoLoad:true
});
按照你说的,对照帮助文档重写了一个store,结果出来了 谢谢!
Go 旅城通票 2015-07-24
  • 打赏
  • 举报
回复
引用 2 楼 yekong125 的回复:
[quote=引用 1 楼 showbo 的回复:] 你的store配置全部乱套吧。自己认真看API和示例
        var deptselect = new Ext.data.Store({autoLoad:true,
            proxy:new Ext.data.HttpProxy({
                url: 'fbinfo.do?method=initDeptCombo',////////////////////////////你的
                reader: new Ext.data.JsonReader({/////////////
                    root: 'root'
                })
            }),
            fields: ['id', 'name']//////////////////
        });
我的formpanel中combox是不是也有问题,还是不行[/quote] 没问题啊,自己对下配置项目。url地址要改你的,我这里测试改动过了。 你直接用浏览器直接访问url看输出什么,如果不是 {"root":[{"id":"500","name":"网络管理科"}......]} 这种格式的是加载不了的
yekong125 2015-07-24
  • 打赏
  • 举报
回复
按照你的配置,应该是数据加载过来了,但是没有显示
var deptselect = new Ext.data.Store({
autoLoad:false,
proxy:new Ext.data.HttpProxy({
url:'fbinfo.do?method=initDeptCombo'
}),
reader:new Ext.data.JsonReader({
root:'root'
}),
fields:['id','name']
});
});


action返回值:{"root":[{"id":"500","name":"网络管理科"}]}
yekong125 2015-07-24
  • 打赏
  • 举报
回复
引用 1 楼 showbo 的回复:
你的store配置全部乱套吧。自己认真看API和示例
        var deptselect = new Ext.data.Store({autoLoad:true,
            proxy:new Ext.data.HttpProxy({
                url: 'data.txt',
                reader: new Ext.data.JsonReader({/////////////
                    root: 'root'
                })
            }),
            fields: ['id', 'name']//////////////////
        });
我的formpanel中combox是不是也有问题,还是不行
Go 旅城通票 2015-07-24
  • 打赏
  • 举报
回复
你的store配置全部乱套吧。自己认真看API和示例
        var deptselect = new Ext.data.Store({autoLoad:true,
            proxy:new Ext.data.HttpProxy({
                url: 'data.txt',
                reader: new Ext.data.JsonReader({/////////////
                    root: 'root'
                })
            }),
            fields: ['id', 'name']//////////////////
        });

87,839

社区成员

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

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