填充组合框动态地ExtJS的
问题描述:
我要动态地根据我从THR网址(也就是Servlet)填充组合框动态地ExtJS的
下面是我的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'
}
但我下面让错误,我的网址不会被调用:
消息:“您正在使用ServerProxy但没有一个网址提供它。”
sourceClass: “Ext.data.proxy.Server”
的sourceMethod: “buildUrl” 未捕获的异常:您正在使用ServerProxy 但没有用 网址提供它。
建议我如何克服这个错误。
答
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'
});
答
您的商店需要更新使用新的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'
}
}
});
您会在这里发现商店有一个属性“模式”,这是一个字符串,并有没有字段映射。这是因为您还需要为商店创建模型以供参考,如下所示:
Ext.define('MyNamespace.StoreModel', {
extend: 'Ext.data.Model',
fields: [
{name:'un'},
{name:'pwd'}
]
});
希望这有助于您!
您使用的是什么版本的ExtJs? – 2011-06-14 13:09:01
@torbjorn我使用Extjs 4 – mahesh 2011-06-15 06:51:25