{
"seeionkey": {
1: {
"2": {
"qty": 1,
"works": 1,
"price": 500
},
"3": {
"qty": 1,
"works": 1,
"price": 500
}, "total": {
"qty": 2,
"works": 2,
"price": 1000
}
},
"总计": {
"总工时": 100,
"总费用": 200000
}
}
}
首先你这个JSON是有点问题的。1: {这里的1表示key,请尽量用引号引上。
第二。json不是这么赋值。如下赋值是可以的。
var xx = {"1":"2"}//赋值一个新的值
xx.newValue = "3333"
console.log(xx)
//打印出来的值是:{ "1"="2", "newValue"="3333"}
你试试吧
json的用途是数据传输,如对其直接进行 *** 作。效率确实慢,所以不推荐这么 *** 作,就算写出了js,用户体验也很差。所以不建议在前段进行数据 *** 作。就算要 *** 作,那json先转成array(),然后 *** 作数组。建议,或者让后端处理好后,把更新好的json传到前段。
或者前段把需要修改的地方发给后端,由后台服务器完成,那效率会高很多。
1.addJSONData和addRowData有点区别,后者是绑定在jquery对象的,前者是绑定在标签上的。
用addJSONData时举例:$("#table")[0].addJSONData(data)
用FF可以看到$("#table")[0]上绑定的事件的。
2.addJSONData接受的参数:
这是后台的.net代码
new JObject() {
new JProperty("total","1"),
new JProperty("page","1"),
new JProperty("records","3"),
new JProperty("rows",yourArrayData)
}
可以看到addJSONData接受的并不是一个数组,就是一个json对象,开始一直也困扰在这里。
前台返回的JSON:
{"total":"1","page":"1","records":"3","rows":[{"UserID":1,"UserName":"kp","Password":"123","Domain":null,"RoleID":null},{"UserID":2,"UserName":"kptest","Password":"Kp123","Domain":null,"RoleID":null},{"UserID":3,"UserName":"ricky","Password":"123","Domain":"XSUNT-SH\\dong.geng","RoleID":1}]}
3.还有一点需要注意的,jqgrid需要定义一个jsonReader其中的repeatitems如果不指定为false FF会返回obj is undefined
jsonReader: {
repeatitems: false,
rows: "rows",
total: "total",
page: "page",
records: "records"
}
4.$("#table").addJSONData(data)的调用位置也值得注意,最后只有在loadComplete中才能加载出数据,gridComplete里不可以,方法外也不行。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)