【问题标题】:Populate ext-js combobox with JSON使用 JSON 填充 ext-js 组合框
【发布时间】:2014-09-04 09:51:16
【问题描述】:

经过大量研究,这是我的问题:

我尝试使用 JSON 填充 Extjs 组合框。 (Json 由 java servlet 中的 SQL 查询生成)。

这是我的 ext-js 代码:

function createComboBox(){

var store = Ext.create('Ext.data.JsonStore', {
    autoLoad : true, 
    url : 'SourceType', 
    method : 'POST',
    fields : ['sourceName'],
    proxy : {
        type : 'memory', 
        reader : {
            type : 'json', 
            root : 'data', 
        }
    }
});

store.load(); 
return store; 

}

这就是我如何将组合框放入 Ext.form.Panel 的项目中:

var store = createComboBox();
Ext.create('Ext.form.Panel', {
bla bla 
items : [
 {
     xtype : 'combo', 
     store : 'store', 
     name : 'combobox', 
     fieldLabel : 'Select ', 
     displayField : 'sourceName', 
     queryMode : 'local'
 }
]
)};

你能解释一下为什么这不起作用吗?

【问题讨论】:

    标签: java json servlets extjs


    【解决方案1】:

    您商店的代理的类型定义为'memory',如sencha docs 中所定义:

    内存中的代理。这个代理只是使用一个局部变量来存储数据 存储/检索,

    您可能需要将代理类型设置为ajaxjsonp,并确保指定服务的网址正确。

    【讨论】:

    • 好的,所以我将代理的类型更改为“ajax”并修改了 URL(我知道这是正确的)。所以我必须将使用的方法和/或 url 放在代码中的特定位置?哦,是的,servlet 从未使用过,为什么?
    • 我对java小程序不熟悉,但是如果有特定的方法,它可能需要在代理的urlextraParams:[]数组中提供。 Here is a gist 我使用所需代理信息的示例模型(您可以在您正在创建的 jsonstore 中使用此代理信息)gist.github.com/weeksdev/8149579#file-model-js
    • 它有效,谢谢 :) 我现在有这样的 Json:{"data":["Polo","BMW"],"success":true} 你知道我怎么能用它来填充我的组合框?
    • 是的,有几种方法可以做到这一点。您在寻找内联或 mvc 解决方案吗? Here 是 extjs 的一个示例,可以帮助您入门。
    • 当然,我做到了,但它是一个静态组合框。我通过修改我的 JSON 找到了一个解决方案,使其看起来像这样: {"data":["source":"polo", "source":"bmx"],"success":"true"} 它是工作!谢谢你的帮助:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-26
    • 2018-03-20
    • 2011-01-25
    • 2017-10-08
    相关资源
    最近更新 更多