dojox
Version:
Dojo eXtensions, a rollup of many useful sub-projects and varying states of maturity – from very stable and robust, to alpha and experimental. See individual projects contain README files for details.
83 lines (78 loc) • 2.56 kB
HTML
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8"/>
<meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,minimum-scale=1,user-scalable=no"/>
<meta name="apple-mobile-web-app-capable" content="yes"/>
<title>EdgeToEdgeStoreList - Load More</title>
<script type="text/javascript" src="../deviceTheme.js" data-dojo-config="mblThemeFiles: ['base']"></script>
<script type="text/javascript" src="../../../dojo/dojo.js" data-dojo-config="async: true, parseOnLoad: true"></script>
<script type="text/javascript">
require([
"dojo/_base/Deferred",
"dojo/store/Cache",
"dojo/store/JsonRest",
"dojo/store/Memory",
"dojo/store/Observable",
"dojo/ready",
"dijit/registry",
"dojox/mobile/ListItem",
"dojox/mobile/parser",
"dojox/mobile",
"dojox/mobile/compat",
"dojox/mobile/ScrollableView",
"dojox/mobile/EdgeToEdgeStoreList"
], function(Deferred, Cache, JsonRest, Memory, Observable, ready, registry, ListItem){
//var url = "data/fruits.json";
var url = "data/fake_service.php";
var memoryStore = new Memory({idProperty:"label"});
var restStore = new JsonRest({idProperty:"label", target: url});
store = new Cache(restStore, memoryStore);
var start = 1,
count = 5,
loadMoreItem = null,
list = null;
function loadMore(){
loadMoreItem.set({
busy: true,
label: "Loading More Items..."
});
setTimeout(function(){ // to simulate network latency
Deferred.when(list.setQuery({start:start, count:count}), function(){
loadMoreItem.set({
busy: false,
label: "Load More Items..."
});
list.removeChild(loadMoreItem);
list.addChild(loadMoreItem);
});
start += count;
return false;
}, 3000);
};
function addLoadMoreItem(){
if(!loadMoreItem){
loadMoreItem = new ListItem({
label: "Load More Items...",
onClick: loadMore,
moveTo: "#",
noArrow: true
});
}
list.addChild(loadMoreItem);
}
ready(function(){
list = registry.byId("list");
Deferred.when(list.setStore(store, {start:start, count:count}), addLoadMoreItem);
start += count;
});
});
</script>
</head>
<body style="visibility:hidden;">
<div data-dojo-type="dojox.mobile.ScrollableView">
<h1 data-dojo-type="dojox.mobile.Heading" data-dojo-props='fixed:"top"'>EdgeToEdgeStoreList</h1>
<ul data-dojo-type="dojox.mobile.EdgeToEdgeStoreList" id="list" data-dojo-props='append:true'></ul>
</div>
</body>
</html>