目前项目使用了jqGrid控件,当点击某个按钮的时候就添加数据,如果单条添加json行数据的时候性能还可以,但是如果行数据很多,用addRowData方法循环调用的话性能就很差,浏览器会卡死一至两分钟。
查看jqGrid的方法貌似addJSonData()可以批量加载数据,但是使用$("#selectTable")[0].addJSONData(jsonData)始终不能出现数据,纠结了很久也不知道怎么不对.
哪位大神知道具体什么方法可以实现批量加载么?小弟万分感谢。
查看jqGrid的方法貌似addJSonData()可以批量加载数据,但是使用$("#selectTable")[0].addJSONData(jsonData)始终不能出现数据,纠结了很久也不知道怎么不对.
哪位大神知道具体什么方法可以实现批量加载么?小弟万分感谢。
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里不可以,方法外也不行。 你可以自己试试。
就这么多吧,第一次解答,语言组织不太好,对jquery如何绑定的描述有不太准确的地方还请见谅。
致敬优雅的Jquery!