在一个ExtJs小例子中注意的问题

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("错误","修改失败");
			}					
		});

 

 

你可能感兴趣的:(json,jsp,Ajax,ext,F#)