2012-08-14 53 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

相關問題