这里我有这样的组合框形式
Ext.define('test.view.user.ComboBox', {
extend : 'Ext.form.ComboBox',
alias : 'widget.comboBox',
fieldLabel : 'Employee Id',
hiddenName : 'EmpId',
//url :'test/empIdList',
store : 'EmpIdStore',
valueField : 'value',
displayField : 'text',
triggerAction : 'all',
name:'empId',
editable : false,
allowBlank: false,
//autoSelect:true,
// forceSelection:true,
listeners : {
select: function()
{
this.store.load();{
alert("hello");
}
}
}
});
我有一个商店
Ext.define('test.store.EmpIdStore', {
extend: 'Ext.data.Store',
itemId:'empIdStore',
reader: new Ext.data.JsonReader({
data : [['', '']],
fields: ['EmployeeId', 'userId'],
}),
proxy: new Ext.data.HttpProxy({
type:'ajax',
url: 'test/empIdList'
})
});
我点击组合框时无法获取值。
我在这个应用程序中使用Hibernate,Spring MVC和extjs MVC。在我的spring控制器中,我有像这样的empIdList方法
@RequestMapping(value = "/empIdList", method = { RequestMethod.POST , RequestMethod.GET})
public void empIdList(HttpServletRequest request,HttpServletResponse response) throws Exception {
System.out.println("Hitting db");
String userId="";
String s=userDao.empIdList(userId);
System.out.println(s);
PrintWriter out = response.getWriter();
out.println(s);
}
我在UserDaoImpl类中有我的实现方法,就像这样
@Override
public String empIdList(String data)
{
String id="";
List<User> lstUsers = new ArrayList<User>();
lstUsers = hibernateTemplate.loadAll(User.class);
for (int i = 0; i < lstUsers.size(); i++) {
id = lstUsers.get(i).getUserId();
System.out.println(" Employee id "+id);
User obj=new User();
obj.setUserId(id);
Gson gson = new Gson();
String json = gson.toJson(obj);
System.out.println(json);
}
return id;
}
任何人都可以帮助我获取组合框的值吗?
答案 0 :(得分:1)
通过更改商店中的代理,我得到了结果。这是我的代码
Ext.define('test.store.EmpIdStore', {
extend: 'Ext.data.Store',
alias : 'widget.empIdStore',
autoLoad: false,
fields: ['id', 'userId'],
proxy: {
type: 'ajax',
url: 'test/empIdList',
reader: {
type: 'json',
root: 'data'
}
}
});