KendoUI:Grid控制項的使用,kendouigrid控制項

來源:互聯網
上載者:User

KendoUI:Grid控制項的使用,kendouigrid控制項

1.建立和基本選項配置

有兩種建立grid的方式,我這裡使用已存在的html div標籤,然後再將div元素kendo化.

<div id=”grid”></div><script th:inline=”javascript”>$(function(){      $('#grid') .kendoGrid({                dataSource : dataSource, //資料來源載入   pageable : {   //分頁資訊選項設定input : true, numeric : false, refresh: true,                           pageSizes: true,                           buttonCount: 5   },   sortable : true, //可排序  height : 430, //表格高度設定  toolbar : [ //工具條,可使用模板自訂{  name : "create",  text : "添加"  },                          { template :                                  kendo.template($("#pageStyleSkinTemplAddTemplate").html())            },            { template :                                   kendo.template($("#pageStyleSkinQueryTemplate").html()) } ],               columns : [ //表格列設定          {              field: "fileName", //dataSource中與data對應的域(field)的名稱             title: "風格名稱", //表頭名稱             width: 200   //列寬         },          {              field: "updaterId",              title: "更新人",              width: 100          },          {              field: "updateTime",              title: "上傳時間",              width: 200,              format: "{0: yyyy-MM-dd HH:mm:ss}" //格式化時間         },         { command : [  //對行資料的操作{ text:"編輯", //名稱click: editFunction //自訂點擊事件}, { text:"下載", click: loadFunction }, { name : "destroy", //調用dataSource中的刪除方法text : "刪除" } ], title : "操作", //表頭名稱width : "250px" //列寬}         ],         editable :  {     mode : "popup", //快顯視窗的編輯模式(行內編輯:”inline”) },         messages : //分頁條部分顯示中文資訊的設定 { display : "Showing {0}-{1} from {2} data items", empty : "No data"  } });});</script>

2.基本CRUD操作

(1)假設資料來源為ajax請求,我這裡不使用kendo封裝好的ajax請求,使用靈活的自己寫的ajax請求.

var codeGridSource = new kendo.data.DataSource({  transport : {read : function(options) {var map = {};    if (options.data.take)    map.take = options.data.take;if (options.data.skip)map.skip = options.data.skip;if (options.data.page)map.page = options.data.page;if (options.data.pageSize)map.pageSize = options.data.pageSize;if (!options.data.filter){} else {options.data.filter = {    logic : "and",    filters : [{field : "codeName",value : $("#codeName").val()},{field : "codeType",value : $("#codeType").val()},{field : "codeTypeName",value : $("#codeTypeName").val()},{field : "codeCode",value : $("#codeCode").val()}]};var fi1 = {};var fi2 = [];var j = 0;$.each(options.data.filter.filters, function(i,element) {if (options.data.filter.filters[i].value) {fi2[j] = options.data.filter.filters[i];j++;}});if (fi2.length > 0) {fi1.filters = fi2;fi1.logic = options.data.filter.logic;map.filter = fi1;    }            }//排序if (!options.data.sort) {} else {options.data.sort = [{field : $("#codeOrder0").val(),dir : $("#codeDir0").val()},{field : $("#codeOrder1").val(),dir : $("#codeDir1").val()} ];var fi3 = [];var j = 0;$.each(options.data.sort, function(i,element){if (options.data.sort[i].field) {fi3[j] = options.data.sort[i];j++;}});if (fi3.length > 0) {map.sort = fi3;}}        $.ajax({          url : "code/single-list.json",          dataType: "json",           data:{          models : kendo.stringify(map)          },          type:"POST",          success: function(result) {            options.success(result);          },          error: function(result) {            options.error(result);          }        });   },update : function(options) {        $.ajax({          url : "code/single-update.json",          dataType: "json",           data:{        models : kendo.stringify(options.data.models)          },          type:"POST",          success: function(result) {            options.success(result);          },          error: function(result) {            options.error(result);          }        });},destroy : function(options) {        $.ajax({          url : "code/delete.json",          dataType: "json",           data:{        models : kendo.stringify(options.data.models)          },          type:"POST",          success: function(result) {            options.success(result);          },          error: function(result) {            options.error(result);          }        });  },create : function(options) {        $.ajax({          url : "code/single-create.json",          dataType: "json",           data:{        models : kendo.stringify(options.data.models)          },          type:"POST",          success: function(result) {            options.success(result);          },          error: function(result) {            options.error(result);          }        });}},batch : true,pageSize : 8,serverPaging : true,serverSorting : true,serverFiltering : true,schema : {errors: function(response) {return response.error; },data : "list",total : "total",model : {id : "id",fields : {codeIndex:{editable : true,type:"number",    defaultValue: 0,    validation:{required:true,min:0}},    codeCode : {editable : true,type:"string",validation:{codeCodevalidation: function (input) {                                if (input.is("[name=codeCode]") && $.trim(input.val()) == "" )                                {                                 input.attr("data-codeCodevalidation-msg", "請輸入業務代碼!");                                 input.css("border-color","red");                                         return false;                                }                                else{                                input.css("border-color"," #94C0D2");                                }                                return true;                            }}},codeName : {editable : true,type:"string"},codeType : {editable : true,type:"string",validation:{codeTypevalidation: function (input) {                                if (input.is("[name=codeType]") && $.trim(input.val()) == "")                                {                                 input.attr("data-codeTypevalidation-msg", "請輸入代碼類型!");                                 input.css("border-color","red");                                         return false;                                }                                else{                            input.css("border-color"," #94C0D2");                            }                                return true;                            }}},codeTypeName: {editable : true,type:"string"}}}},error: function(e) {alert(e.errors);  // displays "Invalid query"codeGridSource.cancelChanges();}  });
(2)使用kendo內建的封裝好的ajax請求來實現.

var dataSource = new kendo.data.DataSource( {   transport : { read : { url : "xxx.json", //定義查詢urltype : "POST" }, create : { url : "xxx.json", //定義新增urltype : "POST" },                           update : { url : "xxx.json", //定義修改urltype : "POST" }, destroy : { url : "xxx.json", //定義刪除urltype : "POST" }, parameterMap : function(options,operation) { //定義提交給後台攜帶的參數var map = {}; if (operation !== "read") { return { models : kendo.stringify(options.models) //查詢操作時返回的參數}; }; if (options.take)     map.take = options.take; if (options.skip) map.skip = options.skip; if (options.page) map.page = options.page; if (options.pageSize) map.pageSize = options.pageSize; if (!options.filter) { } else {                                                   //設定查詢條件和串連符options.filter = {     logic : "and", //定義查詢條件間的串連符    filters : [ { field : "startTime", value : $("#startTime").val() //查詢條件的值的取值}, { field : "endTime", value : $("#endTime").val() }, { field : "fileName", value : $("#fileName").val() },   ]}; var fi1 = {}; var fi2 = []; var j = 0; $.each(options.filter.filters, function(i,element) { if (options.filter.filters[i].value) { fi2[j] = options.filter.filters[i]; j++; } }); if (fi2.length > 0) { fi1.filters = fi2; fi1.logic = options.filter.logic; map.filter = fi1;     }                                      } if (!options.sort) { } else {                                                    //排序 選項的設定options.sort = [ { field : $("#pageStyleSkinOrder0").val(), dir : $("#pageStyleSkinDir0").val() }, { field : $("#pageStyleSkinOrder1").val(), dir : $("#pageStyleSkinDir1").val() } ]; var fi3 = []; var j = 0; $.each(options.sort, function(i,element){ if (options.sort[i].field) { fi3[j] = options.sort[i]; j++; } }); if (fi3.length > 0) { map.sort = fi3; } } //操作為查詢時提交給背景參數 if (operation === "read") { return { models : kendo.stringify(map) }; }  } }, batch : true, //可大量操作pageSize : 8, //每頁顯示條數設定serverPaging : true, //支援分頁功能serverSorting : true,//支援排序功能 serverFiltering : true, //支援查詢功能 schema : { errors: function(response) { return response.error; //錯誤資訊顯示}, data : "list", //定義資料來源total : "total", //頁碼總數model : { id : "id", //id設定fields : {                                                                 //根據data中對象的欄位來擷取要擷取的欄位的值fileName :     {    editable : true, //設定為可編輯   validation : //校正:不可為空{ required : true }     }, updateTime: {    type:"date" //設定欄位類型}  } } }, error: function(e) { //顯示error資訊alert(e.errors);  dataSource.cancelChanges(); }    });


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.