1. 程式人生 > >KendoUI —— data management 類元件 Grid 表格

KendoUI —— data management 類元件 Grid 表格

一、效果展示

二、基礎學習

1、元件基礎引用js與css

<script src="resource/kendoui/js/jquery.min.js"></script>
<script src="resource/kendoui/js/kendo.all.min.js"></script>                   <!-- 熟悉時可引用特點元件的js -->
<link href="resource/kendoui/styles/kendo.common.min.css" rel="stylesheet" />  <!-- 基本樣式定義,必須 -->
<link href="resource/kendoui/styles/kendo.default.min.css" rel="stylesheet" /> <!-- 預設的所有 kendoUI 元件的樣式定義-->
2、語法
$("#id").kendoGrid({ 屬性設定列表 });
三、屬性

1、dataSource了與 schema 屬性

資料來源,可以是本地資料(如:json物件陣列)或遠端資料(如:訪問REST 服務返回json資料)

下面是自己測試成功的模板(官網給的不可用!):

<div id="grid1"></div>
<div id="grid2"></div>
<script>
    var people = [ { firstName: "John",lastName: "Smith",email: "[email protected]
" } ]; $(document).ready(function () { //載入本地資料 $("#grid").kendoGrid({ dataSource:people}); //設定資料來源為本地json物件陣列,表頭即屬性firstName、lastName、Email //重點:載入遠端資料 $("#grid").kendoGrid({ dataSource:{ transport:{ read:{ url:"REST_URL", //REST_URL 為返回json物件陣列的REST 服務 dataType:"json" //REST 服務一般返回json } }, schema:{ data:"dataName", //必須屬性,dataName為我們使用的json物件陣列 model:{ //欄位對映與解析 fields:{ fieldName1:{type:"string|number|date"} fieldName2:{type:"string|number|date"} …… } } } }, //欄位與表格表頭的對映 columns:[ {field:"fileName1",title:"第一列的表頭"}, {field:"fileName2",title:"第二列的表頭"} …… ] //其它設定 }); }); </script>
說明:
1)、本地dataSource,不能為json物件,只能為json物件陣列,且json物件不能巢狀!
2)、遠端的dataSource,必須指定與transport 對應的schema,表示使用的具體資料;
3)、schema 的 data屬性值為 REST 服務返回物件的JSON 物件陣列名,因為REST 返回的實際是一個Object 物件,該物件裡面包含了counts、fields、_proto_ 三個屬性,其中fields 是一個json物件陣列(它的名字應該與我們具體定義的Controller對映路徑有關),也即我們真正需要的資料。


先測試下:
第一步:
SpringMVC 工程Test 中定義了一個REST Service,其某個方法的絕對訪問路徑為:http://localhost:8082/Test/service/request/fields,它查詢資料庫設定model後,返回一個MappingJacksonJsonView 物件。
第二步:
瀏覽器測試訪問該服務,並檢視具體返回的資料。

測試程式碼:

var obj2;
$.get(  
	"service/request/fields",  
	function(data){ obj2=data };
	"json"
);
結果:

可見,返回的是Object,而我們需要的是fields的json物件陣列,所以不能直接使用。
第三步:
生成最基礎的表格,測試關鍵js程式碼:

//#test_grid為一個空div
var grid=$("#test_grid").kendoGrid({
    dataSource:{
        transport : {
	    read : {
		url : "service/request/fields",
		dataType : "json"
	    }
	},
	schema: {
	    data:"fields",
                model: {
                    fields: {
                        id: { type: "string" },
                        name: { type: "string" }
                    }
                }
        }
    },
    height: 300,//沒有width屬性,因為通常是在div中生成表格,而div為塊元素
    groupable: true,
    sortable: true,
    pageable: {
        refresh: true,
        pageSizes: true,
        buttonCount: 5
    },
    columns: [
        {field:"name",title:"Name",width:50},
        {field:"id",title:"ID",width:50}
    ]
});

結果:

所有的記錄都在展示在同一個表格中,左下角的按鈕樣式不對(說明沒有引用某個css檔案),且資料沒有進行分頁,右下角顯示no items to display。

第四步:

修改data 屬性值,程式碼為:

var grid=$("#test_grid").kendoGrid({
    dataSource: {
        transport: {
            read: "service/request/fields",
            type: "GET",
            dataType:"json"
        },
        schema: {
	    data: function(d){
		return d.fields;
	    },
            model: {
                fields: {
                    id: { type: "string" },
                    name: { type: "string" }
                }
            },
            total: function(data) {
                return data.fields.length; 
            }
        },
        pageSize: 20
    },
    height: 300,
    groupable: true,
    sortable: true,
    filterable:true,
    pageable: {
        refresh: true,
        pageSizes: true,
        buttonCount: 5
    },
    columns: [
        {field:"name",title:"Name",width:50},
        {field:"id",title:"ID",width:50}
    ]
});

同時引入kendo.default.min.css,則結果為:

若上面改為引入kendo.bootstrap.min.css,則結果樣式為:

四、總結

1、關於引用的js 與css 檔案

必須引用:

<script src="resource/kendoui/js/jquery.min.js"></script>
<script src="resource/kendoui/js/kendo.all.min.js"></script>                   <!-- 熟悉時可引用特點元件的js -->
<link href="resource/kendoui/styles/kendo.common.min.css" rel="stylesheet" />  <!-- 基本樣式定義,必須 -->
<link href="resource/kendoui/styles/kendo.default.min.css" rel="stylesheet" /> <!-- 預設的所有 kendoUI 元件的樣式定義-->
說明:

對元件比較熟悉時,可不引用kendo.all.min.js而只引用用到的元件的js。對kendo.default.min.css同理,可替換為bootstrap風格的kendo.bootstrap.min.css或其它風格的css。

2、資料欄位格式
格式有string、number、date等,都可對顯示的資料格式進行控制。如:

columns: [
	{field:"stringType",title:"字串型別",width:100},
	{field:"numberType",title:"數字型別",width:100},
	{field:"dateType", title:"日期型別",width:100}
]

3、資料繫結

作用:

實現:

4、較完整可重用示例

程式碼:

效果:

相關推薦

KendoUI —— data management 元件 Grid 表格

一、效果展示 二、基礎學習 1、元件基礎引用js與css <script src="resource/kendoui/js/jquery.min.js"></script>

[Ext JS 6 By Example 翻譯] 第5章 - 表格元件(grid)

轉載自:http://www.jeeboot.com/archives/1225.html   本章將探索 Ext JS 的高階元件 grid 。還將使用它幫助讀者建立一個功能齊全的公司目錄。本章介紹下列幾點主題: 基本的 grid 排序 渲染器 過濾

vue中使用extends繼承父元件改寫data屬性問題

記首次開博  給大家分享最近踩到的一個vue開發中的坑 最近跳槽換了一家公司,技術棧也從Ng4換成了vue.js 2.0版本,使用的vue-cli腳手架 由於是開發的一個後臺管理系統  大部分模組的table都差不太多,那當然是選擇使用繼承的方式來實現 less c

jquery easyui grid 表格特殊字符處理

數據庫字段 一個 cti enc formatter val 提示 ddr 特殊字符 grid 獲取的數據中,如果數據存在測試的字符,或者js語句,會導致頁面布局錯亂,如下方法,讓獲取到的數據全部當成文本進行顯示 此操作主要防止以下亮點 1. 由於業務需要,查詢的數據中

jquery mobile常用的data-role型介紹

展開 參數表 標準 pop 普通 方式 color 狀態 16px 轉自原文 jquery mobile常用的data-role類型介紹 data-role參數表: page 頁面容器,其內部的mobile元素將會繼承這個容器上所設置的屬性 head

ui-grid表格怎麽實現內容居中

col logs 發現 居中 ges 同事 lte 思路 調整 這次是思想落後了,只關註怎麽使用原生的ui-grid樣式來實現這一需求,後來發現可以通過此列的cellTemplate來為列指定內容,從而可以使用css調整樣式。 ps:其實有時候換種思路,豁然開朗。 類似之

jsp頁面帶有多選框的grid表格,如何將勾選中的行記錄所有列數據傳送到後臺。

blank href 後臺 aaa 數據 www hue 選中 cs6 忱分慕兇釉瀑懲防慌虜敝慘緩猩http://jz.docin.com/shuvg316 帳段繁臨市杉聞壞倫捶剎空合戀http://huiyi.docin.com/ogq2843 杏燎乘安轄任凸托飯承臨

TERSUS畫畫一樣開發軟件 顯示元件介紹-表格顯示元件

無代碼件開發;管理軟件;軟件開發TERSUS無代碼手機電腦管理類軟件開發,其中表格顯示元件包括:簡單表格顯示元件(Simple Table)、復雜表格顯示元件(Table) 簡單表格顯示元件(Simple Table):是一個簡單的二維固定樣式表格元件,其中只有一個顯示列的數據結構是可以變更的,默認有一個日期

TERSUS畫畫一樣開發軟件 集合元件介紹-多個對象處理元件1

軟件開發;管理軟件;無代碼軟件TERSUS無代碼手機電腦管理類軟件開發,其中多個對象處理元件包括:是否存在於一組對象中(Appears)元件、從一組對象中去除(Exclude From List)元件、一組對象的總數計算(Count)元件 是否存在於一組對象中(Appears)元件:是檢查一組對象中,是否有某

TERSUS畫畫一樣開發軟件 集合元件介紹-多個對象處理元件2

軟件開發;管理軟件;無代碼軟件TERSUS無代碼手機電腦管理類軟件開發,其中多個對象處理元件還包括:合並兩組對象(Merge)元件、對象分組(Group Items)元件、數字篩選(Filter Numbers)元件 合並兩組對象(Merge)元件:是將兩組對象合為一組對象,比如兩個表格中每行數據結構相同,則

TERSUS畫畫一樣開發軟件 集合元件介紹-單個對象的處理元件

軟件開發;管理軟件;無代碼軟件TERSUS無代碼手機電腦管理類軟件開發,其中單個對象的處理元件包括:生成對象中(Create)元件、是否出現(Exist)元件、查找對象(Find Elements)元件 生成對象中(Create)元件:生成某個對象的元件,系統中可能並沒有這個對象或對象默認為不生成(右鍵去掉勾

TERSUS畫畫一樣開發軟件 集合元件介紹-對象序號相關元件

軟件開發;管理軟件;無代碼軟件TERSUS無代碼手機電腦管理類軟件開發,其中對象序號相關元件包括:第一個結果(First)元件、第幾個結果(Get Numbered Item)元件、最後一個(Last)元件、在某個位置插入(Merge)元件、在某個位置刪除(Group Items)元件 第一個結果(First

TERSUS畫畫一樣開發軟件 集合元件介紹-對象排序相關元件

軟件開發;管理軟件;無代碼軟件TERSUS無代碼手機電腦管理類軟件開發,其中對象排序相關元件包括:數字序列(Range)元件、排序(Sort)元件、去重(Unique Items)元件 數字序列(Range)元件:是創建一個包含指定範圍的數組,創建出一個整數列表,和有代碼開發一樣,一般是用在循環中的,比如需要

TERSUS畫畫一樣開發軟件 集合元件介紹-對象映射元件

軟件開發;管理軟件;無代碼軟件TERSUS無代碼手機電腦管理類軟件開發,其中對象映射元件包括:生成映射項(Put Map Entry)元件、獲取映射項(Get Map Entry)元件 生成映射項(Put Map Entry)元件:是將鍵-值進行匹配生成一對一對的對應對象的元件,當知道鍵時,也就知道對應的值了

ExtJs 日期相加,Grid表格列可編輯

for CI tex lec combox ant head tool RM 1、日期相加: Ext.Date.add(new Date(), Ext.Date.DAY, 15) 2、Grid表格列可編輯: { header : "實際已交貨量",

Static int data語句說明data變量,為一個的共享變量,屬於整個

continue tin 編譯 spa 階乘 bsp 輸出 tom sys 面向對象高級: 修飾符: static:①可修飾變量(屬性);②可修飾方法;③可修飾代碼塊。 Static int data語句說明data為類變量,為一個類的共享變量,屬於整個類。 Int da

grid表格

isp pla .com -a ack utf-8 gre per back <!DOCTYPE html><html><head><meta charset="utf-8"><title>grid

idea @Data實體get/set報錯

 最近,用idea新匯入了一個Java web專案,同樣的程式碼在eclipse中就不會報錯,但是在idea就有問題,程式碼編譯不通過,紅標,啟動報錯,最後在git上找到原因:lombok在idea中是需要裝外掛的.......       網上查了很久的資料才

使用hibernate建立實體對應的表格

1.建立實體類 public class User { private int uid; private String name; private String age; private String address; public int getUid(

關於父元件與子元件的互相傳值

第一步:子類向父類傳值  在java中父類是可以將值傳給子類的,但是卻不能從子類拿到值,同理子類是可以將父類的值拿到手,但是卻不能將自己的值傳給父類 而在vue中,子類和父類之間是不允許傳值的但是,我們可以利用關聯和引用來讓他們之間建立起一些聯絡 子類向父類傳值要使用$emit