1、当form组件为combox类型时,要想得到值必须指定hiddenName属性,而非name属性。
{ xtype: 'combo', fieldLabel: '性别', name: 'sexText', hiddenName: 'sex', //这是combobox实际的参数名称 store: new Ext.data.SimpleStore({ fields: ['value','text'], data: [['1','男'],['2','女']] }), emptyText: '请选择', mode: 'local', triggerAction: 'all', valueField: 'value', displayField: 'text', readOnly: true }
2、得到form里面组件的值用form.getForm().findField('id').getValue()而不是用Ext.get("id").getValue(),因为后者貌似在火狐里面有错。
3、grid重新加载和form重设的方法:
grid.getStore().reload(); form.getForm().reset();
4、grid和form交互的方法:
grid.on("rowclick",function(grid,rownum,event){ var record=grid.getStore().getAt(rownum); form.getForm().loadRecord(record);//将record中的数据赋予form中的输入组件,前提:form的name和record中定义的属性一致即可。 });
5、无论是form提交还是ajax请求,与后台交互时,需要返回json格式的字符串,如jsp页面应该这样写:
<%@ page contentType="application/json;charset=utf-8" %> <% request.setCharacterEncoding("utf-8"); response.setCharacterEncoding("utf-8"); ..... out.print("{success:true,msg:'删除成功'}"); %>
那么前台应该这样获得返回的内容:
form.getForm().submit({ url:"/stuSave.jsp", success:function(f,action){ //注意这里的参数不能是form,要换个名称 if(action.result.success){ //为true Ext.Msg.alert("消息",action.result.msg); } }, failure:function(){ Ext.Msg.alert("错误","修改失败"); } });