Titanium 表视图中的数据反射
Google API Android 2.3.1,数据库表中的数据更改不会反映在tableview屏幕中,但如果我们重新启动应用程序,将显示更改,并且如果我们加载app.js,将显示最近的更改 有人能帮我修一下吗Titanium 表视图中的数据反射,titanium,titanium-mobile,titanium-modules,Titanium,Titanium Mobile,Titanium Modules,Google API Android 2.3.1,数据库表中的数据更改不会反映在tableview屏幕中,但如果我们重新启动应用程序,将显示更改,并且如果我们加载app.js,将显示最近的更改 有人能帮我修一下吗 fireEvent("db_update") & addEventListener('db_update',function(){这里应该有什么来更新表数据})要更新数据库,需要先删除它,然后安装一个新的数据库。或运行查询以更新当前查询 这是我根据存储在属性中的版本号更新数据库的方
fireEvent("db_update")
&addEventListener('db_update',function(){这里应该有什么来更新表数据})要更新数据库,需要先删除它,然后安装一个新的数据库。或运行查询以更新当前查询 这是我根据存储在属性中的版本号更新数据库的方式:
function updateDatabase(version){
if (version != Ti.App.Properties.getInt('version',0)){
sb.db.remove();
sb.db = Ti.Database.install('/lib/db.sqlite','db');
Ti.App.Properties.setInt('version',version);
}
}
在应用程序中,在启动时,我使用手动键入的版本号运行该功能。每次数据库更改时,您都可以手动更改此号码
updateDatabase(5);
当然,这并不反映表内容的定期更新。(在数据库上运行常规查询时)
在这种情况下,您应该自己重新生成tableview的内容(您有填充tableview的代码,请重新运行该代码),或者找到一种方法,例如使用ID来指定需要更改的确切行 我找到了解决办法
Ti.App.addEventListener('updatedb', updateData);
这里的“updateData”是从数据库获取tableview数据的函数。在
“updateData”函数的底部,为表视图设置数据
i.e) tableview.setData(data);
然后,您的insert、update或delete函数应该触发“updatedb”函数
i、 (e)
现在,在调用deleteData函数之后,tableview数据将显示w/o deleted record
function deleteData(recId) {
var db = Ti.Database.open(DBNAME);
db.execute(" DELETE FROM tblName WHERE id IN("+ recId+") ");
db.close();
Ti.App.fireEvent('dataupdated');
}