2012-07-18 100 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();