原創|使用教程|編輯:郝浩|2013-10-31 09:46:00.000|閱讀 831 次
概述:本教程為大家展示如何將Ignite UI 數據源組件 igDataSource 綁定到客戶端的JavaScript數組和JSON數據。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
本教程為大家展示如何將HTML5 & jQuery UI庫 Ignite UI 數據源組件 igDataSource 綁定到客戶端的JavaScript數組和JSON數據。事實上,無論是綁定到標準數組還是JSON數組,其方法大致都是差不多的。建立數據源數組之后,將數據綁定到igDataSource組件,然后將數據源綁定到UI元素上。這篇文章會講到不同數據格式之間的一些細微差別。
無論選擇哪種數組格式進行綁定,頁面上必須有合適的JavaScript文件支持數據源組件。首先在頁面上添加以下腳本引用:
<script src="scripts/jquery-1.4.4.js" type="text/javascript"></script> <script src="scripts/jquery-ui.js" type="text/javascript"></script> <script src="scripts/infragistics.core.js" type="text/javascript"></script>
注意:igGridControl組件沒有規定引用任何CSS文件,因為數據源組件沒有內置對應的用戶界面。
將igDataSource組件綁定給一個純JavaScript數組,首先添加一串數組到頁面:
var arrayOfArraysData = [ ["AED", "Emirati Dirham", "Jun 1 1998 12:00AM"], ["AFA", "Afghani", "Jun 1 1998 12:00AM"], ["ALL", "Lek", "Jun 1 1998 12:00AM"], ["AMD", "Armenian Dram", "Jun 1 1998 12:00AM"], ["ANG", "Netherlands Antillian Guilder", "Jun 1 1998 12:00AM"], ["AOA", "Kwanza", "Jun 1 1998 12:00AM"], ["ARS", "Argentine Peso", "Jun 1 1998 12:00AM"], ["ATS", "Shilling", "Jun 1 1998 12:00AM"], ["AUD", "Australian Dollar", "Jun 1 1998 12:00AM"], ["AWG", "Aruban Guilder", "Jun 1 1998 12:00AM"], ["AZM", "Azerbaijanian Manat", "Jun 1 1998 12:00AM"], ];
然后創建一個HTML表格元素作為容器,下列代碼展示了如何創建表格,如何定義表格標題:
<table id="t1"> <thead> <tr> <th>Currency Code</th> <th>Name</th> <th>Modified Date</th> </tr> </thead> <tbody></tbody> </table>
接下來,必須有一個可以渲染綁定在表格上數據的機制,下面給出了一個jQuery客戶端模板定義:
var template = "<tr> <td> ${CurrencyCode} </td> <td> ${Name} </td><td> ${ModifiedDate} </td></tr>"
下面要做的就是將各個部分綁定到一起:
var arraySchema = new $.ig.DataSchema("array", {fields:[ {name: "CurrencyCode", type: "string"}, {name: "Name", type: "string"}, {name: "ModifiedDate", type: "string"}] }); ds = new $.ig.DataSource({dataSource: arrayOfArraysData, schema: arraySchema}); ds.dataBind(); $("#t1 tbody").empty(); $("#arrayDataTemplate").tmpl(ds.dataView()).appendTo("#t1 tbody");
這樣,最終表格中的內容就被清空了,取而代之用客戶端模板中的數組數據填充表格。
綁定 igDataSource組件到JSON數據的方法跟前面是差不多的,主要的差別就是數據源組件可以直接從數據中推出模式,這是因為JSON數據的對象定義中包含一個固定模式。
下面是JSON的數組:
var products = []; products[0] = { "ProductID": 1, "Name": "Adjustable Race", "ProductNumber": "AR-5381" }; products[1] = { "ProductID": 2, "Name": "Bearing Ball", "ProductNumber": "BA-8327" }; products[2] = { "ProductID": 3, "Name": "BB Ball Bearing", "ProductNumber": "BE-2349" }; products[3] = { "ProductID": 4, "Name": "HS Ball Bearings", "ProductNumber": "BE-2908" }; products[4] = { "ProductID": 316, "Name": "Blade", "ProductNumber": "BL-2036" }; products[5] = { "ProductID": 317, "Name": "LL Crankarm", "ProductNumber": "CA-5965" }; products[6] = { "ProductID": 318, "Name": "ML Crankarm", "ProductNumber": "CA-6738" }; products[7] = { "ProductID": 319, "Name": "HL Crankarm", "ProductNumber": "CA-7457" }; products[8] = { "ProductID": 320, "Name": "Chainring Bolts", "ProductNumber": "CB-2903" }; products[8] = { "ProductID": 321, "Name": "Chainring Nut", "ProductNumber": "CN-6137" };
接下來是創建表格容器:
<table id="t1"> <thead> <tr> <th>ProductID</th> <th>Name</th> <th>Product Number</th> </tr> </thead> <tbody></tbody> </table>
jQuery客戶端模板定義,用于客戶端數據綁定:
<script id="JsonDataTemplate" type="text/x-jquery-tmpl"> <tr> <td> ${ProductID} </td> <td> ${Name} </td> <td> ${ProductNumber} </td> </script>
最后將JSON數組綁定到數據源組件,然后使用 jQuery客戶端模板綁定表格元素:
var ds = new $.ig.DataSource({ type: "json", dataSource: products, responseDataKey: "ProductID"}); ds.dataBind(); $("#t1 tbody").empty(); $($.ig.tmpl(template, ds.dataView())).appendTo("#t1 tbody");
這里注意: responseDataKey的值通常設置為關鍵字域。
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:慧都控件