与 Ext.data.JsonStore 连接的 ExtJS 3 组合框不会在第二次 ++ 单击时打开

Posted

技术标签:

【中文标题】与 Ext.data.JsonStore 连接的 ExtJS 3 组合框不会在第二次 ++ 单击时打开【英文标题】:ExtJS 3 Combobox connected with Ext.data.JsonStore doesn't open at second++ click 【发布时间】:2012-02-09 19:47:15 【问题描述】:

我的组合框有问题。我构建了一个简单的组合框,它配置了 JsonStore 以提供远程数据。组合框在第一次单击时打开,没有问题,请求 JSON 数据,Ext 显示完整的下拉列表。

但偶尔在第二次(有时是第三次)单击时,组合框既不打开也不加载任何远程数据。

这是我的配置:

    var config = 
        autoLoad: true,
        fields: [
            name: 'name',
            type: 'string'
        , 
            name: 'count',
            type: 'int'
        , 
            name: 'created_at',
            type: 'int'
        , 
            name: 'updated_at',
            type: 'int'
        ],
        root: 'result',
        idProperty: 'id',
        proxy: new Ext.data.HttpProxy(
            method: 'GET',
            url: '/myHandler/loadDropDownList'
        )
    ;

组合框本身加载在工具栏中:

    var config = 
        height: 27,
        items: [
            xtype: 'tbtext',
            text: 'Your preference?:',
            // @todo inline style -> CSS
            style: 
                'font-weight': 'bold',
                'color': '#15428B',
                'font-family': 'tahoma,arial,verdana,sans-serif',
                'font-size': '11px'
            
        , 
        '->',
        // align the following items on the right side of the toolbar
        
            xtype: 'combo',
            itemId: 'table-combobox',
            store: new myStore(),
            valueField: 'name',
            displayField: 'name',
            value: ' - Please Choose - '
        ]
    

提前非常感谢!

【问题讨论】:

【参考方案1】:

每次选择组合框时查询数据库时可能会遇到问题。如果您不需要在整个用户会话期间更新组合框数据(即下拉值在用户单击组合框的时间之间不会更改),您可以将此配置添加到组合框:

mode:'local',

(ExtJS4:queryMode:'local')

它将获取远程存储已自动加载的数据,并且不会在每次下拉时重新查询数据库存储。

【讨论】:

嗯,听起来不错。我会试试看 - 谢谢你的回复! @silentCoder 如果这对您有用,请不要忘记勾选答案(此处左侧的复选标记) 嗯,抱歉这对我不起作用。请参阅docs.sencha.com/ext-js/3-4/#!/api/Ext.form.ComboBox-cfg-mode -> 如果您不希望在第一次单击触发器时自动加载商店,请设置为 'local' 并手动加载商店。为此,我必须手动加载商店,但我不想在我的应用程序中这样做:-(

以上是关于与 Ext.data.JsonStore 连接的 ExtJS 3 组合框不会在第二次 ++ 单击时打开的主要内容,如果未能解决你的问题,请参考以下文章

如何在 ExtJS 3.4 中添加/合并多个 Ext.data.JsonStore

我如何将 loadData 函数作为 Ext.data.JsonStore ExtJS3.0.0 的一部分?

如何在sencha中检索Ext.data.JsonStore数据

从另一个文件访问 Ext Designer JsonStore

如何在 ext js 4.1 中重新加载商店?

SQL内连接与外连接用法与区别