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

-------------------JS拼接和分割方法-----------------------
本帖最后由 wy150150150 于 2012-12-13 23:23:42 编辑
字段
--------------------------------
  ID        NAME     SEX
 1001       abc       m
 1002       cde       f
 1003       def       m
----------------------------------------
前台用EXT!
(一)
比如说:如上,把添加的内容放在GridPanel里!需要用JS把每条数据取出来,转换成格式
      String str  =  "1001/abc/m, 1002/cde/f, 1003/def/m";
      有没有通用的JS方法做拼接,我需要带到formPanel里的隐藏域里

(二)
   有没有通用的JS分割方法, 需要在编辑的时候异步提交到后台, 返回的格式是 String str  =  "1001/abc/m, 1002/cde/f, 1003/def/m";  需要能够准确的找到数据分割后传到编辑窗口中
    例如在页面上的显示结果应该是如下:
    --------------------------
      ID:  1003       NAME : def      SEX:  m 
       
------解决方案--------------------
用数组处理不行么.
------解决方案--------------------
做成两个split。。函数。。一个是豆号一个是斜杠。。代码稍后贴上
------解决方案--------------------
不过你ext数据的格式是?
------解决方案--------------------
数据基本格式都没有。。怎么转换。
------解决方案--------------------
既然你都用gridPanel了。就后台组装一个json过来让ext自动解析就好了,
你这样的话只能用2个split解析数据,然后往store里面一条一条加?
------解决方案--------------------
推荐你使用json,我都是用json写的,数据传输内容自定义、格式自定义,想怎么整就怎么整。
------解决方案--------------------
为啥子不用json数据呢?
------解决方案--------------------
引用:
 7楼--   貌似你应该有实践经验,而且应该玩过Ext. 求代码演示!

我先确定前后台之间的联系,以更新数据库为例,后台访问数据库执行语句为
   update {table} set {f1} = {v1}, {f2} = {v2}, …… where {kf1} = {kv1}, {kf2} = {kv2}, ……
所以后台需要知道的信息是当前更新操作的目标表、字段和记录定位字段及参数。

这个不一定适应于你的工程。因为我的工程是内部使用,外网访问不到,对于工程的保密性或者安全性要求不是那么高,而数据处理又很多,所以很多时候我把部分数据库信息暴露到了前台代码中,才出现了很多通式,降低了后台复杂度和程序修改可能性。比如我的数据源读取方式就以数据库字段为name,即Grid的column的dataIndex。

以更新数据库为例,上面那个语句就是它的通式,那么不管前台需要更新哪个表、哪个字段,只要它将对应数据传递到后台,后台会执行相应数据库访问操作,所以前台传递到后台的数据格式我定义为:
{
    table      :'table',
    fields     :[f1,f2,……],
    values     :[[v01,v02,……],[v11,v12,……]],
    keys       :[ke,k2,……],
    keyValues  :[[kv01,kv02,……],[kv11,kv12,……]]
}

Ext的Store,有一个方法getModifiedRecords,用于获取修改过的记录,遍历这个记录,根据数据源配置可以生成上面格式的数据。再把整个数据(一个对象)转为json型字符串数据,后台接受到参数后解析为JSONObjcet,然后经过处理生成对应的sql语句,然后访问数据库。

可以看得出来,所有数据格式和模型都可以自己定义,喜欢怎么弄怎么弄,类似我的这个格式
1.table规定了更新那个表;
2.fields规定了更新的字段;
3.values是个二维数组,第一维内的每个元素对应更新一条记录;
4.key和keyValues规定了更新时的记录定位。

数据联系: