Titanium 表视图中的数据反射

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(){这里应该有什么来更新表数据})要更新数据库,需要先删除它,然后安装一个新的数据库。或运行查询以更新当前查询 这是我根据存储在属性中的版本号更新数据库的方

Google API Android 2.3.1,数据库表中的数据更改不会反映在tableview屏幕中,但如果我们重新启动应用程序,将显示更改,并且如果我们加载app.js,将显示最近的更改

有人能帮我修一下吗

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');
}