读书人

-JS拼凑和分割方法-

发布时间: 2012-12-30 10:43:15 作者: rapoo

-------------------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规定了更新时的记录定位。

数据联系:


1.values里每个元素中的元素必须和fields中的对应。
2.keyValues里每个元素中的元素必须和keys中的对应。
3.values里每个元素必须和keyValues中的对应,保证更新的记录和值是统一的。

当然你还可以增加很多格式和模型,比如字段也以对象的方式,加上数据类型、数据格式(时间类型很有必要)等等。
总之一切都有你自己控制。

至于代码,你自己想想,应该能搞定。
有什么再交流

读书人网 >JavaScript

热点推荐