2013-05-17 68 views
0

我在Sencha Touch中創建了一個DataView,它存在於我的一個Tab中。無法在Sencha Touch中看到DataView

問題是,我看不到我的DataView。如果我右鍵單擊 - >檢查元素(在Chrome中),我可以在頁面上看到我的DataView的HTML(在開發工具中),但在頁面上,我看到的只是一個白色背景。

這裏的源代碼,以我的數據視圖:

Ext.define('MyApp.view.DashboardTab', { 
extend: 'Ext.Panel', 
xtype: 'dashboard', 

config: { 
    title: 'Dashboard', 
    itemId: 'dashboardTab', 
    layout: 'vbox', 

    items: [{ 
     xtype: 'dataview', 
     store: { xtype: 'mystore' }, 
     itemTpl: [ 
      '<div class="myDiv">', 
       '<table class="myTable">', 
        '<tr>', 
         '<td>Data 0:</td><td>{data_0}</td>', 
         '<td>Data 1:</td><td>{data_1}</td>', 
        '</tr>', 
        '<tr>', 
         '<td>Data 2:</td><td>{data_2}</td>', 
         '<td>Data 3:</td><td>{data_3}</td>', 
        '</tr>', 
        '<tr>', 
         '<td>Data 4:</td><td>{data_4}</td>', 
         '<td>Data 5:</td><td>{data_5}</td>', 
        '</tr>', 
       '</table>', 
       '<div class="myOtherDiv">', 
        '<img src="{image}" />', 
       '</div>', 
      '</div>' 
     ] 
    }] 
} 
}); 
+1

您是否嘗試將佈局更改爲'fit'? – jprofitt

+0

這是問題所在。我改變了我的佈局以適應,現在我可以看到DataView。謝謝jprofitt。 – rottendevice

+1

使用'fit'佈局時的注意事項是它會佔用第一個非停靠項目並使其成爲屏幕的大小。所以如果你有多個沒有停靠的'items',你需要使用'vbox'或者在額外的'items'周圍使用'container'。否則,你只會看到第一個。 – jprofitt

回答

0

看起來像你的數據視圖不會從存儲中獲取數據,這是不獲取顯示數據視圖的原因。

一種替代方法是在您的控制器中使用setData來爲您的數據視圖設置數據。

舉一個例子,

var responseObj = serverController.getWSResponse; 
    var myDataView = Ext.getCmp('myDataView '); 
     var data = myDataView .getData(); 
     if (data != null) { 
      myDataView .onStoreClear(); 
     } 

     myDataView.setData(Ext.JSON.decode('[' + JSON.stringify(responseObj) + ']')); 

這會給你更多的靈活性,調試於你在數據視圖餵養。

希望這會有所幫助。

相關問題