我有一个dijit / form / ComboBox控件,它有一个JsonStore作为对象存储。
// Prepare the datasource for combobox
settings.JsonStore = new JsonRestStore({ target: settings.dataUrl });
settings.ObjectStore = new ObjectStore({ objectStore: settings.JsonStore });
var ComboBox = new ComboBox({
id: settings.id,
name: settings.id,
value: settings.value,
style: {
width: settings.width.value + 'px',
display: (settings.visible) ? 'visible' : 'none'
},
maxHeight: settings.dropHeight.value,
store: settings.ObjectStore,
searchAttr: settings.comboValue,
labelType: "html",
labelFunc: function (item, store) {
var labelText = '....';
return labelText;
},
onChange: function (evt) {
}
}
当我尝试查询组合框时,会发出以下http请求:
http://<settings.dataUrl>/?<settings.comboValue>?A*
http://<settings.dataUrl>/?<settings.comboValue>?AB*
我想知道是否可以根据另一个控件的值在组合框上添加过滤器。例如:
http://<settings.dataUrl>/?CustomerNo=0001&<settings.comboValue>?AB*
我已经尝试过以下操作,当尝试通过更改URL更改过滤器时,我尝试更改组合框的存储。但它不起作用。我试图通过再次设置商店值来重置商店,这会导致错误。
答案 0 :(得分:1)
我终于能够通过另一个问题here得到答案。
Combobox.set( 'query', { 'CustomerNo' : dijit.byId('<Customer control ID>').getValue() } );
查询变为:
http://<settings.dataUrl>/?CustomerNo=0001&<settings.comboValue>?AB*