我要实现的功能是 在双击grid里面的行后 获取该行的ID 然后把ID传到后台service层做处理, 返回该行数据
项目采用 spring+hibernate+ExtJS+DWR 实现以前做的时候 我在双击grid行的时候,传递record 执行以下方法,
function operate(record){
myForm.getForm().loadRecord(record)
myWindow.show();
};这样是很简单, 但是如果我在form里面有复选框 就无法绑定, 所以我选择后者, 与后台service层交互
这个时候 我在双击grid里面行的时候, 就传递id 执行以下方法,
function operate(personId){
myForm.getForm().load({
url: myPerson.findById(personId)
});
myWindow.show();
};
后台findById  如下
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 是这样写的
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
}。
后面部分我省略了, 结果取不到值, 弄了半天没弄出来, 请各位帮帮我, 谢谢

解决方案 »

  1.   

    “但是如果我在form里面有复选框 就无法绑定,”。。你点击的是Grid,跟这个form有什么关系。你现在用了几个pannel,是一个GridPanel和一个formPanel吗
      

  2.   

    知不知道你自己在说什么啊?
    数据是 store的部分  跟grid 和 form毫无关系的
      

  3.   

     都是一个, 我自己理解上有了问题, 呵呵, 不好意思, 
             你能告诉我 formpanel上面如果有复选框, 需要 record 传来什么格式的数据 才能绑定上去吗?
      

  4.   

    能告诉我 formpanel上面如果有复选框, 需要 record 传来什么格式的数据 才能绑定上去吗?