我想根据从thr Url(即servlet)收到的数据动态填充组合框
以下是我的ExtJS代码:
{
xtype:'combo',
id: 'shoutoutsTags',
fieldLabel: 'Tag',
value: '',
mode: 'local',
width: 200,
store: new Ext.data.JsonStore({
id:'ms',
url:'http://localhost:8080/ezdi/extServlet',
//totalProperty:'totalCount',
root:'rows',
fields:[
{name:'un'},
{name:'pwd'}
],
autoLoad:true
}),
displayField: 'un',
valueField: 'pwd',
typeAhead:true,
minChars:1,
forceSelection: true,
triggerAction: 'all',
hideTrigger:true
//hiddenName: 'mytag'
}
但我收到以下错误而我的网址未被调用:
msg:“您使用的是ServerProxy但尚未提供网址。”
sourceClass:“Ext.data.proxy.Server”
sourceMethod:“buildUrl”未捕获异常:您正在使用ServerProxy 但没有提供它 网址。 的
建议我如何克服这个错误。
答案 0 :(得分:3)
您的商店需要更新才能使用新的Ext JS 4数据模型:
var store = Ext.create('Ext.data.Store', {
model: 'MyNamespace.StoreModel',
proxy: {
type: 'ajax',
url: 'http://localhost:8080/ezdi/extServlet',
reader: {
type: 'json',
root: 'rows',
totalProperty: 'totalCount'
}
}
});
你会在这里注意到商店有一个属性'model',它是一个字符串,并且没有字段映射。这是因为您还需要为要引用的商店创建模型,如下所示:
Ext.define('MyNamespace.StoreModel', {
extend: 'Ext.data.Model',
fields: [
{name:'un'},
{name:'pwd'}
]
});
希望这有帮助!
答案 1 :(得分:3)
Ext.define("modelname", {
extend: 'Ext.data.Model',
proxy: {
type: 'ajax',
url : '/myServlet',
method:'POST',
reader: {
type: 'json',
root: 'rows'
//,totalProperty: 'totalCount'
}
},
fields: [
{name: 'name', mapping: 'name'}
]
});
var ds = Ext.create('Ext.data.Store', {
pageSize: 10,
model: 'modelName'
});
答案 2 :(得分:1)
这不是一个有效的网址,你只需要'/ ezdi / extServlet'。