codecamp

DataSet

DataSet最主要的功能就是为一份数据赋予一个名称,使这份数据可以以配置的方式被其他控件引用,以便于建立绑定关系。 在定义DataSet时,我们可以选择以下两种定义数据的方式之一。

直接设置数据

直接把最终的数据交给DataSet。交给DataSet的数据的载体即可以是JSON+Array,也可以是Entity+EntityList。不过他们最终都会被包装成Entity+EntityList

JSON设置数据

dataSet.setData({
   "id":1,
    "productName":"Chai1",
    "categoryId":1,
    "discontinued":true,
    "quantityPerUnit":"10 boxes x 20 bags",
    "reorderLevel":12,
    "unitPrice":18,
    "unitsInStock":39,
    "unitsOnOrder":0
});

Array设置数据

dataSet.setData([{
    "id":1,
    "productName":"Chai1",
    "categoryId":1,
    "discontinued":true,
    "quantityPerUnit":"10 boxes x 20 bags",
    "reorderLevel":12,
    "unitPrice":18,
    "unitsInStock":39,
    "unitsOnOrder":0
},{
    "id":2,
    "productName":"Chang",
    "categoryId":1,
    "discontinued":true,
    "quantityPerUnit":"24 - 12 oz bottles",
    "reorderLevel":25,
    "unitPrice":19,
    "unitsInStock":17,
    "unitsOnOrder":40
}]);

Entity设置数据

var entity = new dorado.Entity();
entity.fromJSON({
    "id":1,
    "productName":"Chai1",
    "categoryId":1,
    "discontinued":true,
    "quantityPerUnit":"10 boxes x 20 bags",
    "reorderLevel":12,
    "unitPrice":18,
    "unitsInStock":39,
    "unitsOnOrder":0
});
dataSet.setData(entity);

EntityList设置数据

var entityList = new dorado.EntityList();
entityList.fromJSON([{
    "id":1,
    "productName":"Chai1",
    "categoryId":1,
    "discontinued":true,
    "quantityPerUnit":"10 boxes x 20 bags",
    "reorderLevel":12,
    "unitPrice":18,
    "unitsInStock":39,
    "unitsOnOrder":0
},{
    "id":2,
    "productName":"Chang",
    "categoryId":1,
    "discontinued":true,
    "quantityPerUnit":"24 - 12 oz bottles",
    "reorderLevel":25,
    "unitPrice":19,
    "unitsInStock":17,
    "unitsOnOrder":40
}]);
dataSet.setData(entityList);

通过DataProvider定义数据

数据的提取方式告诉DataSet。这要利用DataProvider,我们接下来将会介绍这种对象。如果使用这种方式来定义DataSet中的数据,那么DataSet将拥有数据懒装载的特性,因此直到外界试图通过DataSet提取数据时,相应的DataProvider才会被真正的激活。

dataSet.set("dataProvider", new dorado.AjaxDataProvider("data/phones.js"));

不过大部分场景我们还是直接在IDE设计器中定义DataProvider:

DataType
DataPath
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }