Ext JS4 学习笔记之发送表单(Form)时也将表单下的表格(Grid)数据一同发送的方法

Ext JS4 学习笔记之发送表单(Form)时也将表单下的表格(Grid)数据一同发送的方法

        昨天在开发的时候遇到个小问题,就是如何将Grid的内容与Form一起发送到服务器端。默认情况下,表单(Form)里的表格(Grid)数据是不随表单一起发送的,这个时候就需要我们将表格里的数据做一下处理。有两种思路,第一种就是发送完Form以后用一个回调函数,再将Grid的数据取出来再发送,这样略嫌麻烦,还得考虑表单发送成功与否等问题;第二种就是讲Grid里的数据分别遍历出来,组成一个Json数据,放到表单里隐藏的一个域里,然后随表单一起发送出去。我采取的是第二种方法,详细代码如下:

         

 1 var myStore = Ext.getCmp(‘myGrid‘).getStore(); //取出列表的Store
 2         var myRecord= myStore.getRange(); //将Store里的所有record放到myRecord里
 3         var myJson = [];
 4         for(var i in myRecord){            //遍历所有的record,将其放置在对应的myJson数组里
 5             myJson .push({
 6                 ‘a‘: myRecord[i].get(‘a‘),
 7                 ‘b‘: myRecord[i].get(‘b‘),
 8                 ‘c‘: myRecord[i].get(‘c‘),
 9                 ‘d‘: myRecord[i].get(‘d‘),
10                 ‘e‘: myRecord[i].get(‘e‘),
11                 ...................................
12             });
13         };
14         Ext.getCmp(‘hiddenField‘).setValue(Ext.encode(myJson));//编译myJson数组为一个Json对象,并放置在id为‘hiddenField’的隐藏域里,注意隐藏域要放置在表单里。

       好了,这样再提交表单的时候,就会将表格(Grid)里的数据随着表单一起发送到服务器端,而且是以Json数据格式发送的。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。