2013-02-26 55 views
0

我有一个ProfileView应该显示一些用户数据。这是我第一次尝试从MySql获取数据并在Sencha视图中显示它。Sencha列表显示没有数据

视图

Ext.define('MyApp.view.Profile', { 
extend : 'Ext.Panel', 
xtype : 'profileview', 

requires : ['Ext.List', 'Ext.data.Store'], 

config : { 
    layout: 'fit', 
    title : 'Profiel', 
    iconCls : 'user3', 
    cls : 'home', 
    scrollable : true, 
    styleHtmlContent : true, 
    html : ['<h1>Mijn Profiel</h1>'].join(""), 
    items : [Ext.create('Ext.List', { 
     title : 'Profile', 
     docked : 'top', 
     store : myStore, 
     show : function(list, opts) { 
      alert('list === ' + list); 
      console.log('List Shown: ' + list); 
     } 
    })] 
} 

});

var myStore = Ext.create("Ext.data.Store", { 
model : "MyApp.model.User", 
proxy : { 
    type : "ajax", 
    url : "php/get_user.php", 
    reader : { 
     type : "json" 
     // rootProperty : "users" 
    } 
}, 
autoLoad : true 
}); 

的数据是正确返回,但没有显示,这我想弄清楚。

的响应

[{"ID":"19","USERNAME":"Annet","EMAIL":"[email protected]"}] 

我跳过了rootProperty因为它是一个单个用户。

模型

Ext.define('MyApp.model.User', { 
extend : 'Ext.data.Model', 
config : { 
    fields : [{ 
     name : 'ID', 
     type : 'int' 
    }, { 
     name : 'USERNAME', 
     type : 'string' 
    }, { 
     name : 'EMAIL', 
     type : 'string' 
    }] 
} 

});

那么,为什么列表不显示任何内容?

更新

我检查,看看它存储包含数据和它

map: Object 
ext-record-1: Class 
_data: Object 
EMAIL: "[email protected]" 
ID: 19 
USERNAME: "Annet" 
id: "ext-record-1" 
__proto__: Object 

为什么不通过列表回升?我也尝试了DataView。

+0

尝试将日志存储在控制台中。以便我们能够发现它是不是进入商店的数据,或者是没有显示数据的列表。还要检查商店首先放置ome虚拟数据,如果它显示数据然后看我们可以figur如果从php的数据给我们带来麻烦 – 1Mayur 2013-02-26 17:22:35

+0

@SirwaniMayur商店包含数据,请参阅我的更新。 – 2013-02-26 17:55:35

+0

但是下面一行没有执行:console.log('List Shown:'+ list); – 2013-02-26 17:56:03

回答

0

您需要使用itemTpl,我为您更改了代码。

Ext.define('MyApp.view.Profile', { 
extend : 'Ext.Panel', 
xtype : 'profileview', 

requires : ['Ext.List', 'Ext.data.Store'], 

config : { 
    layout: 'fit', 
    title : 'Profiel', 
    iconCls : 'user3', 
    cls : 'home', 
    scrollable : true, 
    styleHtmlContent : true, 
    html : ['<h1>Mijn Profiel</h1>'].join(""), 
    items : [Ext.create('Ext.List', { 
     title : 'Profile', 
     docked : 'top', 
     itemTpl : '<div>{ID} <span> {USERNAME} </span> <span> {EMAIL} </span> </div>', 
     store : myStore, 
     show : function(list, opts) { 
      alert('list === ' + list); 
      console.log('List Shown: ' + list); 
     } 
    })] 
} 
});