Sencha Touch 选择字段无法显示数据存储中的值

Posted

技术标签:

【中文标题】Sencha Touch 选择字段无法显示数据存储中的值【英文标题】:Sencha Touch selectfield cannot display value from datastore 【发布时间】:2011-11-25 04:45:34 【问题描述】:

我正在尝试将商店加载到 sencha touch 2.0 中的 Select 字段中,但遇到了一个奇怪的问题: 对于以下代码:

        
            xtype : 'list',
            store : 'Docbases',
            itemTpl : 'Hello docbase!'
        , 
            xtype : 'selectfield',
            label : 'Docbase',
            id : 'docbase',
            store : 'Docbases',
            displayField : 'docbase',
            valueField : 'docbase',
            placeHolder : 'Select a Value'

        

list组件可以很好的显示,而selectfield不能显示值。单击该选择字段时,出现控制台错误:

Uncaught TypeError: Cannot call method 'get' of null

My Store 声明为:

Ext.define('FDMobileClient.store.Docbases', 
    extend : 'Ext.data.Store',
    requires : ['FDMobileClient.model.Docbase'],
    model : 'FDMobileClient.model.Docbase',
    autoLoad : true,
    proxy : 
        type : 'ajax',
        url : '/MobileInternalProject/mobile/getDocbaseList.action',
        reader : 
            type : 'json',
            root : 'docbases'
        
    ,

);

有没有人知道我做错了什么:(

感谢您的所有帮助。谢谢

【问题讨论】:

【参考方案1】:

我觉得你的商店不错。这就是我所做的排序:

在您的视图配置中:

config: 
   ...
   docStore : null
   ...
,

在你看来初始化:

initialize: function() 
   ...
   docStore = Ext.create('FDMobileClient.store.Docbases');
   ...
,

最后是你的选择字段的代码


    xtype : 'list',
    store : 'Docbases',
    itemTpl : 'Hello docbase!'
, 
    xtype : 'selectfield',
    label : 'Docbase',
    id : 'docbase',
    store : docStore, //NOTE: no quotes!
    displayField : 'docbase',
    valueField : 'docbase',
    placeHolder : 'Select a Value'


它对我有用,对你也应该没问题。祝你好运,亚历克斯

【讨论】:

【参考方案2】:

您应该为您的商店提供一个 ID,并在引用该商店时使用此标识符:

Ext.define('FDMobileClient.store.Docbases', 
extend : 'Ext.data.Store',
requires : ['FDMobileClient.model.Docbase'],
model : 'FDMobileClient.model.Docbase',
id : 'DocbaseStore'
...


...
store : 'DocbaseStore',
displayField : 'docbase',
...

【讨论】:

以上是关于Sencha Touch 选择字段无法显示数据存储中的值的主要内容,如果未能解决你的问题,请参考以下文章

Sencha Touch 2- 解析存储包含数组的 JSON 文件

Sencha Touch自动对焦在文本字段上

Sencha Touch:如何更新数据存储以从控制器列出

Sencha Touch:显示数据库中的图像

Sencha Touch:如何以编程方式关注 ios 上的文本字段?

Sencha touch 2.0:将“空”选择添加到选择字段