我有一张表格。在表单中,我使用comboBox
和store
。
{
xtype: 'combobox',
id: 'SubContractor',
name: 'SubContractor',
fieldLabel: 'Sub Contractors',
selectOnFocus: true,
editable: false,
displayField: 'FirstName',
store: 'jsonGetSubContractorsList',
typeAhead: true,
allowBlank: false,
typeAheadDelay: 20,
valueField: 'SubContractID',
width: 440,
labelWidth: 229
}
在商店中,在代理中我有静态extraParams
,它正在运行。
proxy: {
type: 'ajax',
url: '/admin/contract/subcontractors/jsonsubcontractorslist',
extraParams: {
cid : 34
},
reader: {
type: 'json',
root: 'data'
}
},
但是我不知道如何动态地将合同ID发送到我的商店。
答案 0 :(得分:21)
store.getProxy().extraParams = {
foo: 'bar'
};
store.load();
答案 1 :(得分:9)
对于extjs4,它更确切地说:
store.load({
params:{
'foo1': bar1,
'foo2': bar2
}
});
答案 2 :(得分:2)
试试这个:
.
.
proxy: {
type: 'ajax',
api: {
create: CONTEXT_PATH + '/mvc/odon/create',
read: CONTEXT_PATH + '/mvc/odon/list',
update: CONTEXT_PATH + '/mvc/odon/update',
destroy: CONTEXT_PATH + '/mvc/odon/delete'
},
.
.
传递参数:
var storeDiagnostico= down('gridpanel').getStore();//Ext.create('store.odont.DStore');
storeDiagnostico.getProxy().setExtraParam("idOdontologia", value);
storeDiagnostico.load();
答案 3 :(得分:1)
在Chrome和FF中,即使这样也可以:
store.proxy.extraParams.foo= 'bar';
但是在IE8中(个人有这个问题) 得到了Evan提到的方式
store.proxy.extraParams = {foo: 'bar'};
答案 4 :(得分:0)
对不起伙计们,
我花了更多时间来了解所有可用的选项和不同的选项。关于这个问题的答案太多了。我已经对它们进行了总结,并希望答案可以帮到某些人。
创建商店时(Ext JS 6.x.x中支持,可能在早期版本中):
var store = Ext.create('YourStore', {
listeners: {
// Fires before a request is made. op is an Ext.data.Operation object
beforeload:function(store,op){
// Set request parameters (without overriding other parameters)
op.setParams(Ext.apply(op.getParams()||{},{
par1:'value'
}));
},
...
定义商店的代理时。自Ext JS 4.x.x以来支持:
proxy: {
type: 'ajax',
url: 'rest/dse',
extraParams: {
par1: 'value'
}
注意:在这种情况下,会为多个后续查询发送参数!
明确加载数据时。所有版本的Ext JS都支持(自3.x.x起):
store.load({
params: { par1: "value" }
});
注意:不需要将par1
放在''或“”中。
替代子选项,它使用对代理及其extraParams选项的访问:
store.getProxy().extraParams = {
par1: 'value'
};
store.load();
小心这一点。此参数将发送给多个后续查询!
创建商店时。仅在Ext JS 3.x版本中支持。
var genres1 = new Ext.data.Store({
baseParams: {
param1: 'value1',
param2: 'value2'
},
// ...