2012-08-14 65 views
0

所以我试图用Custom Objects的数组中的单个字段的值填充TableView,但我的TableView没有填充我得到的数组。这是我的代码:如何用自定义对象中的单个字段填充TableView?

function SearchWindow(){ 
    var self = Ti.UI.createWindow({ 
     backgroundColor:'#d0d0d0d' 
    }); 
    var Cloud = require('ti.cloud'); 
    Cloud.debug=true; 

    var searchBar = Ti.UI.createSearchBar({ 
     showCancel:false 
    }); 
    var data = []; 
    Cloud.Objects.query({ 
     classname:'Reservacion' 
    }, function(e){ 
     if(e.success){ 
      for(var i=0; i< e.Reservacion.length; i++){ 
       data.push({title : e.Reservacion[i].nombre}); 
      } 
     } else { 
      alert('Error \n ' + ((e.error && e.message) || JSON.stringify(e))); 
     } 
    }); 

    var tableView = Ti.UI.createTableView({ 
     backgroundColor:'#d0d0d0', 
     search:searchBar, 
     data: data, 
     filterAttribute : 'title' 
    }); 

    self.add(tableView); 
    return self; 
} 

我填充从字段值的数据阵列称为​​从一个叫ReservacionCustom Object,但数据未对Table View所示。我的方法错了吗?如果是这样,那么我如何填写我的Table View与所需的数据?

回答

1

创建表视图后,您正在将nombre字段的值推送到数据阵列。这意味着当创建表视图时,没有行,所以这就是为什么你什么都看不到。数据完全填充(在Cloud.Objects.query回调中)后,通过设置tableView.data = data;来解决此问题。

实例化时未指定data您的表视图:

var tableView = Ti.UI.createTableView({ 
    backgroundColor:'#d0d0d0', 
    search:searchBar, 
    filterAttribute:'title' 
}); 

我希望它的作品。

+0

不,“TableView”显示为空,我已经提出了一些警报来检查数据数组是否正在填充并且是。我不知道为什么TableView没有填充数组。 – 2012-08-14 18:53:30

+0

@UrielArvizu:表格视图是否存在?只是改变tableview的颜色,看看 – 2012-08-14 19:14:06

+1

我找到了解决方案:我需要在回调函数内添加数组,因为它是异步的,所以当我用数组填充tableview时,它不一定会被函数的时间填充调用。以下是最终结果http://pastebin.com/kj5Xsw7h – 2012-08-14 19:58:36

相关问题