extjs Combo远程数据问题

long_ty 2013-03-27 10:37:59
使用extjs combobox时遇到一些问题,点击下拉小三角后台打印json数据:
[{"id":1,"name":"车身科"},{"id":2,"name":"底盘科"},{"id":3,"name":"电器科"}]
但combobox中什么也没显示,不知道出错在什么地方,望各位大大指点迷津。

JS源码:
Ext.onReady(function() {
Ext.BLANK_IMAGE_URL = 'extjs/resources/images/default/s.gif';
Ext.QuickTips.init();

var ds = new Ext.data.JsonStore({
reader: new Ext.data.JsonReader({
fields: ['id', 'name'],
root: 'jsonStore'
}),
proxy: new Ext.data.HttpProxy({
url: 'department_listCombo.action'
})
});
//ds.load();
var department = new Ext.FormPanel( {
renderTo : userForm,
frame : true,
title : '用户表单',
width : 250,
autoHeight : true,
layout : "form",
hideLabels : false,
buttonAlign : "center",
labelAlign : "right",
//labelWidth : 80,
items : [ {
xtype: 'combo',
name:"nameCombo",
store: ds,
mode: 'remote',
triggerAction : 'all',
//forceSelection: true,
readOnly : false,
//editable:false,
//pageSize:0,
emptyText : "---请选择---",
fieldLabel: '所属部门',
//valueField : 'id',
displayField:'name',
//hiddenName:"hiddenId",
width: 130
} ],

buttons : [ {
text : '提交',
//formBind : true, // only enabled once the form is valid
//disabled : true,
handler : function() {
//Ext.Msg.alert("message",department.getForm());
var form = user.getForm();
if (form.isValid()) {
//Ext.Msg.alert("message",form.findField('department.name').getValue());
form.submit( {
waitMsg : '正在提交数据,请稍后...',
url : 'json/user_add.action',
method : 'POST',
success : function(form, action) {
if(action.result.success){

window.location.href="user_grid";
}
},
failure : function(form, action) {
Ext.Msg.alert('Failed', "err:"+action.result.success);
//alert('Failed');
}
});
}
}
},{
text : '重置',
handler : function() {
department.form.reset();
}
}]
});

});

...全文
122 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
long_ty 2013-03-27
  • 打赏
  • 举报
回复
引用 5 楼 liukewengx 的回复:
引用 4 楼 long_ty 的回复:引用 2 楼 liukewengx 的回复: 你的json数据似乎没有和root: 'jsonStore' 关联起来 是不是reader有问题还是什么情况,查了好久都查不出来。 ext出问题真是不好调试,怎么测试后台的jsonStore是否已经传到前台? 我印象中像你这样写的话,正确的json格式应该是类似{'jsonS……
虽然没帮我找到答案,不过还是谢谢你的耐心回答,分给你了~
long_ty 2013-03-27
  • 打赏
  • 举报
回复
唉,粗心大意,是与struts交互的时候选错了包,应该访问struts的/json包下面的action才会返回json数据

鸡肋啊 2013-03-27
  • 打赏
  • 举报
回复
引用 4 楼 long_ty 的回复:
引用 2 楼 liukewengx 的回复: 你的json数据似乎没有和root: 'jsonStore' 关联起来 是不是reader有问题还是什么情况,查了好久都查不出来。 ext出问题真是不好调试,怎么测试后台的jsonStore是否已经传到前台?
我印象中像你这样写的话,正确的json格式应该是类似{'jsonStore':{[{"id":1,"name":"车身科"},{"id":2,"name":"底盘科"},{"id":3,"name":"电器科"}] }},这样才能和前台的root: 'jsonStore'对应; 至于怎么看前台返回的json可以用火狐DEBUG
long_ty 2013-03-27
  • 打赏
  • 举报
回复
引用 2 楼 liukewengx 的回复:
你的json数据似乎没有和root: 'jsonStore' 关联起来
是不是reader有问题还是什么情况,查了好久都查不出来。 ext出问题真是不好调试,怎么测试后台的jsonStore是否已经传到前台?
long_ty 2013-03-27
  • 打赏
  • 举报
回复
引用 1 楼 liukewengx 的回复:
引用 楼主 long_ty 的回复:使用extjs combobox时遇到一些问题,点击下拉小三角后台打印json数据:
[{"id":1,"name":"车身科"},{"id":2,"name":"底盘科"},{"id":3,"name":"电器科"}]
但combobox中什么也没显示,不知道出错在什么地方,望各位大大指点迷津。

JS源码:
Ext.onR……




我直接采用copy的,这个木有问题啊。
鸡肋啊 2013-03-27
  • 打赏
  • 举报
回复
你的json数据似乎没有和root: 'jsonStore' 关联起来
鸡肋啊 2013-03-27
  • 打赏
  • 举报
回复
引用 楼主 long_ty 的回复:
使用extjs combobox时遇到一些问题,点击下拉小三角后台打印json数据: [{"id":1,"name":"车身科"},{"id":2,"name":"底盘科"},{"id":3,"name":"电器科"}] 但combobox中什么也没显示,不知道出错在什么地方,望各位大大指点迷津。 JS源码: Ext.onReady(function() { Ext.BLANK_IM……
检查下jsonStore和你后台的json是否对应

81,094

社区成员

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

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