在使用kendoUI的grid组件时,远程数据源的获取是必不可少的操作,查阅kendoUI的API官网,也能看到有关远程数据的请求,
今天我就总结一下我个人对grid的远程数据获取:read与update,destroy,create的处理区别,我先贴出一段代码,然后会根据代
码做出说明
//先搞一块块状元素,然后将此元素搞成grid组件 <div id="grid"></div> $("#grid").kendoGrid({ })
目前我们有了grid组件,那么就该远程获取数据了:
$("#grid").kendoGrid({ //这个属性就是放置数据的,在这个里面你就可以获取数据(远程,本地) //我主要说的就是获取远程数据时,read与其他三种方式的区别 dataSource:{ //kendoUI中这种请求和AJax比较类似 transport: { read: { url: "user/selectByOrgId", dataType: "json", type: "POST" }, update: { url: "user/update", dataType: "json", type: "POST", contentType: "application/json" }, destroy: { url: "user/delete", dataType: "json", type: "POST", contentType: "application/json" }, create: { url: "user/insert", dataType: "json", type: "POST", contentType: "application/json" }, parameterMap: function (options, operation) { if (operation == "read") { return options; } return kendo.stringify(options); } } } });
标红的地方就是read与update,destroy,create的请求区别,其实这个区别和Ajax发送select和insert请求是相似的,现在把Ajax的请求也写出来
下面这个代码是ajax执行的select操作:
$.ajax({ type:"post", url:"user/selectByOrgId", data:{orgId:1}, success:function(data){ alert(data) }, dataType:"json" }) //这种方式和上面那种方式相同,不同的地方在于post请求的参数不能是对象 $.post("user/selectByOrgId",{orgId:6},function(data){ alert(data); },"json");
下面这个代码是ajax执行的insert操作:
var user={"workPhone":"123","email":"123@136.com"}; var userJsonString = JSON.stringify(user); $.ajax({ type:"post", url:"user/insert", data:userJsonString, contentType:"application/json", success:function(msg){ alert(msg); }, dataType:"json" })
标红的地方就是select操作和insert操作的区别,对比发现,他俩的区别和kendogrid的read与update,destroy,create的区别有异曲同工之妙:
总结如下:在读操作时,我们不需要contentType这个参数,也不需要将对象json化
在其他操作时,我们需要说明contentType:“application/json”,而且要将返回的数据进行json化