2013-05-17 36 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) + ']')); 

这会给你更多的灵活性,调试于你在数据视图喂养。

希望这会有所帮助。

相关问题