【问题标题】:Titanium tableView refresh钛表视图刷新
【发布时间】:2012-07-18 21:02:26
【问题描述】:

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

【问题讨论】:

    标签: sqlite titanium tableview appcelerator titanium-mobile


    【解决方案1】:

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

    【讨论】:

    【解决方案2】:

    假设你有你的表,定义为:

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

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

    【讨论】:

    • 我想要的是在每次查看窗口/选项卡时重新处理一条 SQL 语句。
    【解决方案3】:

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

    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();
    

    【讨论】:

      猜你喜欢
      • 2010-11-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-27
      • 2011-08-31
      • 2011-03-18
      相关资源
      最近更新 更多