kendo DataSource
1.transport
标准的DataSource格式,默认get请求:
var dataSource = new kendo.data.DataSource({ transport: { read: { url: "https://demos.telerik.com/kendo-ui/service/products", dataType: "jsonp" }, update: { url: "https://demos.telerik.com/kendo-ui/service/products/update", dataType: "jsonp" } } });
设置为post请求:
var dataSource = new kendo.data.DataSource({ transport: { update: { type: "POST" } } });
自己写ajax请求:
注意:如果transport中有一个方法是自己写的ajax请求,则其他方法也需要使用自己写的ajax请求,需保持一致。
var dataSource = new kendo.data.DataSource({ transport: { read: function(options) { }, update: function(options) { $.ajax({ url: "https://demos.telerik.com/kendo-ui/service/products/update", dataType: "jsonp", data: { models: kendo.stringify(options.data.models) }, success: function(result) { options.success(result); }, error: function(result) { options.error(result); } }); } } });
需要传递的其他参数data:
//作为对象发送 var dataSource = new kendo.data.DataSource({ transport: { update: { cache: true, //是否缓存请求结果 contentType: "application/json", //发送到服务器的内容表头 dataType: "json", //发送服务器的数据类型 data: { name: "Jane Doe", age: 30 } } } }) //从函数返回发送其他参数 var dataSource = new kendo.data.DataSource({ transport: { update: { data: function() { return { name: "Jane Doe", age: 30 } } } } });
2.schema
model
var dataSource = new kendo.data.DataSource({ schema:{ model:{ id:'', fields:{ name: { type: "number",defaultValue:0, editable: false, nullable: true, validation: { required: true, min: 1, NoValidation:function(input){ if (input.is("[name='UnitPrice']") && input.val() != "") { if(input.val() > 30){ input.attr("data-NoValidation-msg", "请输入小于30数字"); return false; } } return true; } }} } } } });
注意:
- editable:初始化的时候,控制该列是否可编辑;
- defaultValue:默认值,只适用于新建的单元格,比如:新增;
- validation:单元格的验证,可以写自定义事件;