日期:2014-05-16  浏览次数:20304 次

Ext.form.FormPanel 接收 JSON 数据
我要实现的功能是 在双击grid里面的行后 获取该行的ID 然后把ID传到后台service层做处理, 返回该行数据
项目采用 spring+hibernate+ExtJS+DWR 实现

以前做的时候 我在双击grid行的时候,传递record 执行以下方法,
JScript code
function operate(record){
        myForm.getForm().loadRecord(record)
        myWindow.show();
    };


这样是很简单, 但是如果我在form里面有复选框 就无法绑定, 所以我选择后者, 与后台service层交互
这个时候 我在双击grid里面行的时候, 就传递id 执行以下方法,
JScript code
function operate(personId){
        myForm.getForm().load({
            url: myPerson.findById(personId)
        });
        myWindow.show();
    };

后台findById 如下
Java code
public void findById(Long id, HttpServletResponse response) {
        Person person = personDAO.findById(id);
        List list = new ArrayList();
        list.add(person);
        JSONObject job = new JSONObject();
        job.put("success", true);
        job.put("person", list);
        try {
            System.out.println(job.toString());
            response.getWriter().print(job.toString());
        } catch (IOException e) {
            // TODO Auto-generated catch block
            System.out.println("ok1");
            e.printStackTrace();
        }
    }


后台进去了 System.out.println(job.toString()); 打印有值 值为
{"person":[{"sex":"1","age":"25","hobby":"1,3","personId":1001,"personName":"Damon"}],"success":true}

我的formpanel 是这样写的
JScript code
var myForm = new Ext.form.FormPanel({
        width: 300,
        bodyStyle: 'padding:5px 5px 0',
        frame: true,
        reader: new Ext.data.JsonReader({
            successProperty: 'success',
            root: 'person'
        },['personId','personName','sex','age','hobby']),
        items: [
            {
                fieldLabel:'PERSONID',
                xtype:'textfield',
                readOnly:true,
                name:'personId',
                id:'personId',
                readOnly: true
            }。。。。。。。



后面部分我省略了, 结果取不到值, 弄了半天没弄出来, 请各位帮帮我, 谢谢




------解决方案--------------------
“但是如果我在form里面有复选框 就无法绑定,”。。。。。

你点击的是Grid,跟这个form有什么关系。你现在用了几个pannel,是一个GridPanel和一个formPanel吗
------解决方案--------------------
知不知道你自己在说什么啊?


数据是 store的部分 跟grid 和 form毫无关系的