2012-07-18 90 views
0

如何添加一个事件侦听器,以便在窗口/选项卡处于焦点时更新表?我当前的代码适用于webViews,但我不确定如何将其应用于tableViews。 win.addEventListener('focus',function(e){webview.reload();});钛表查看刷新

回答

3

创建重新加载数据表的方法,并呼吁table.setData(_tableData)

+0

是的,这是正确的...干杯.. – MRT 2012-07-19 13:56:42

+0

@Aaron桑德斯:仅供参考,有一个[提议栈交易所仅适用于Appcelerator的区域51](http://area51.stackexchange.com/proposals/40242/appcelerator)。你支持这些提议真是太棒了! – blunders 2012-07-19 22:57:46

0

说,你有你的表,其定义为:

var tableData = [{title: 'Elephants'}, {title: 'Donkeys'}, {title: 'Falcons'}] 

var tableView = Ti.UI.createTableView({ 
    data: tableData 
}) 
win.add(tableView) 

和阵列称为newData有你想要的新信息放在桌子上。你有没有尝试过以下几点?

win.addEventListener('focus', function(e){ 
    tableView.data = newData 
}) 

让我知道你是否需要更多的信息,或者如果这不符合你的需求。

+0

我想要的是每次查看窗口/选项卡时都要重新处理SQL语句。 – Maxx 2012-07-19 01:41:16

0

是的,您可以执行您当前的代码。

win.addEventListener('focus', function(e){ 
    tableView.setData(newData); // this is always add update Array 
}); 

例如

var win = Ti.UI.createWindow(); 
var data = [ 
    {title:"Row 1"}, 
    {title:"Row 2"}, 
    {title:"Row 3"} 
]; 

var tableView = Ti.UI.createTableView({ 
    data: data 
}); 

win.add(tableView); 
win.open(); 

再次尝试这个

var win = Ti.UI.createWindow(); 
    var data = [ 
     {title:"Row 1"}, 
     {title:"Row 2"}, 
     {title:"Row 3"} 
    ]; 

    var tableView = Ti.UI.createTableView({ 
     data: data 
    }); 
data = [ 
     {title:"Row 1"}, 
     {title:"Row 2"}, 
     {title:"Row 3"}, 
    {title:"Row 4"}, 
    {title:"Row 5"}, 
    ]; 
win.addEventListener('focus',function(){ 
     tableView.setData(data); 
}); 
win.add(tableView); 
win.open();