zoukankan      html  css  js  c++  java
  • sencha touch 坑爹的Panel,数据不显示了...

    一位同学问我一个问题:

    sencha touch中xtype创建dataview死活不显示!!
    版本2.3.1,MVC模式,sencha touch创建目录
    程序很简单,主界面一个tabPanel,两个分页“FoodMain”“UserMain”
    想在第一个分页显示一个DataView,结果死活不显示,
    Main.js如下:

     1 //file: app/view/Main.js
     2 Ext.define('myapp.view.Main', {
     3     extend: 'Ext.tab.Panel',
     4     xtype: 'main',
     5     requires: [
     6         'myapp.view.Foodmain',
     7         'myapp.view.Usermain'
     8     ],
     9     config: {
    10         tabBarPosition: 'bottom',
    11 
    12         items: [
    13             {
    14                 xtype: 'foodmain',
    15                 title: '主页',
    16                 iconCls: 'home'
    17             },
    18             {
    19                 xtype: 'usermain',
    20                 title: '用户',
    21                 iconCls: 'user'
    22             }
    23         ]
    24     }
    25 });

    Foodmain.js如下:

     1 // file: app/view/Foodmain.js
     2 Ext.define('myapp.view.Foodmain', {
     3     extend: 'Ext.Panel',
     4     xtype: 'foodmain',
     5     id: 'idfoodmain',
     6     config: {
     7         items: [{
     8             xtype: 'dataview',
     9              300,
    10             store: {
    11                 fields: ['name', 'age'],
    12                 data: [
    13                     {name: 'Jamie',  age: 100},
    14                     {name: 'Rob',   age: 21},
    15                     {name: 'Tommy', age: 24},
    16                     {name: 'Jacky', age: 24},
    17                     {name: 'Ed',   age: 26}
    18                 ]
    19             },
    20 
    21             itemTpl: '<div>{name} is {age} years old</div>'
    22         }]
    23     }
    24 });

    第一分页死活不显示这个dataview,其他控件一律正常。如果再创建个panel,在panel里还是不显示,反正就是死活没有
    如图


    ----------------------------------------------
    如果改成直接在Main.js,如下则第三页能正确显示,

     1 // file: app/view/Main.js
     2 Ext.define('myapp.view.Main', {
     3     extend: 'Ext.tab.Panel',
     4     xtype: 'main',
     5     requires: [
     6         'myapp.view.Foodmain',
     7         'myapp.view.Usermain'
     8     ],
     9     config: {
    10         tabBarPosition: 'bottom',
    11 
    12         items: [
    13             {
    14                 xtype: 'foodmain',
    15                 title: '主页',
    16                 iconCls: 'home'
    17             },
    18             {
    19                 xtype: 'usermain',
    20                 title: '用户',
    21                 iconCls: 'user'
    22             },
    23             // 直接加入Main.js中则第三页能正常显示
    24             {
    25                 xtype: 'dataview', 
    26                 title: 'Test',
    27                 iconCls: 'user',
    28                 300,
    29                 store: {
    30                     fields: ['name', 'age'],
    31                     data: [
    32                         {name: 'Jamie',  age: 100},
    33                         {name: 'Rob',   age: 21},
    34                         {name: 'Tommy', age: 24},
    35                         {name: 'Jacky', age: 24},
    36                         {name: 'Ed',   age: 26}
    37                     ]
    38                 },
    39                 itemTpl: '<div>{name} is {age} years old</div>'
    40             }
    41         ]
    42     }
    43 });

    第一页仍然没有,第三页能正确显示!
       
    ----------------------------------以上是问题,我是分割线----------------------------------

    解决方案就是:

    给dataview设置一个高度

    Panel布局在ext之中是比较坑爹的,在Panel中再套用视图控件一定要注意控件的高宽等属性,并且这种布局也比较耗费内存会降低性能,不推荐使用。

    所以用的时候能不用尽量不用,最后的代码应该是:

     1 // file: app/view/Foodmain.js
     2 Ext.define('myapp.view.Foodmain', {
     3     extend: 'Ext.Container',
     4     xtype: 'foodmain',
     5     id: 'idfoodmain',
     6     config: {
     7         items: [{
     8             xtype: 'dataview',
     9             height:'100%',
    10             store: {
    11                 fields: ['name', 'age'],
    12                 data: [
    13                     {name: 'Jamie',  age: 100},
    14                     {name: 'Rob',   age: 21},
    15                     {name: 'Tommy', age: 24},
    16                     {name: 'Jacky', age: 24},
    17                     {name: 'Ed',   age: 26}
    18                 ]
    19             },
    20             itemTpl: '<div>{name} is {age} years old</div>'
    21         }]
    22     }
    23 });
  • 相关阅读:
    javascript传值和页面跳转传值
    EXT使用方法汇总(5)——布局
    ext中ArrayStore,JsonStore,XmlStore的用法
    Ext学习系列(9) Ext.data.HttpProxy
    第一章 .NET体系结构
    session相关知识的收集于整理
    struts+spring+mybatis框架整合
    JBoss7 两种运行模式介绍
    Java获取本机mac地址
    JBoss7快速入门
  • 原文地址:https://www.cnblogs.com/mlzs/p/3474203.html
Copyright © 2011-2022 走看看