0

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

4

3 回答 3

3

创建一个重新加载表数据并调用的方法table.setData(_tableData)

于 2012-07-18T23:09:54.637 回答
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
})

如果您需要更多信息或者这不符合您的需求,请告诉我。

于 2012-07-18T23:09:58.913 回答
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();
于 2012-07-19T13:56:14.383 回答