|
按案例(记账本)做添加实例可以,
但显示记录就出现错误框:
代码:
define(function(require){
var $ = require("jquery");
var justep = require("$UI/system/lib/justep");
var AccDB = require("$UI/hello/accDB");
var SqliteUtil = require("$UI/demo/sqlite/sqliteUtil");
var Model = function(){
this.callParent();
};
Model.prototype.modelLoad = function(event){
var me=this;
window.accDB=AccDB.getInstance();
//accDB.initData();
accDB.initData(function() {
// 初始化后刷新列表
me.comp("list1").refresh(true);
});
};
Model.prototype.data1CustomRefresh = function(event){
//标记当前刷新是异步执行的
event.async = true;
var db = accDB.getDatabase();
var data = event.source;
var append = event.options && event.options.append; // 是否数据追加模式
var limit = event.limit; // 分页行数
var offset = event.offset; // 分页偏移
// 执行SQL查询
SqliteUtil.executeSql(db, "SELECT * FROM account LIMIT ? OFFSET ? ", [ limit, offset ], onSuccess, onError);
function onSuccess(res) {
// 转换返回数据结果
var table = SqliteUtil.rowsToTable(res.rows);
if (offset==0) {
// 如果偏移为零则表明加载第一页,需要在Table中提供总行数,用于分页计算
SqliteUtil.executeSql(db, "SELECT COUNT(*) cnt FROM account ", [], function(res) {
SqliteUtil.setTableTotal(table, res.rows.item(0).cnt);
doRefreshData();
});
} else {
doRefreshData();
}
function doRefreshData() {
data.loadData(table, append);
// 异步执行模式下,加载数据后必须执行doRefreshAfter
data.doRefreshAfter(true, event.options);
}
}
function onError(msg) {
data.doRefreshAfter(false, event.options);
}
};
return Model;
});
请指点一下,谢谢!!
|
|