与 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数据