PDA

View Full Version : Combo Box Issues



James Goddard
13 Apr 2011, 5:13 AM
1. Combo boxes do not respect store filters.
2. Remote combo boxes have to be clicked twice to see the loaded data.
3. If you use a combo box as a grid cell editor and set editable to false on the field (to prevent typing in the combo) you cannot enable the control.

The following code demonstrates 1 and 2. To demonstrate 3 simply add editable to the field in the cell editor sample.


Ext.onReady (function() {
Ext.regModel('State', {
fields: [
{type: 'string', name: 'abbr'},
{type: 'string', name: 'name'},
{type: 'string', name: 'slogan'}
]
});

var store = new Ext.data.Store({
model: 'State',
proxy: {
type: 'ajax',
url: 'states.html'
},
filters: [{
filterFn: function (item) {
return item.data.name.indexOf ('A') === 0;
}
}],
filterOnLoad: true
});

var simpleCombo = new Ext.form.ComboBox({
fieldLabel: 'Select a single state',
renderTo: 'simpleCombo',
displayField: 'name',
width: 500,
labelWidth: 130,
store: store,
queryMode: 'local',
typeAhead: true,
triggerAction: 'all',
allowBlank: false,
forceSelection: true,
queryMode: 'remote'
});
});

pkli
13 Apr 2011, 10:50 PM
I complete this list instead open a new post.

- Combo param shadow:false does not work : shadow is always present.

- typing a value does not exist hide the contextual list but not shadow
Already reported in http://www.sencha.com/forum/showthread.php?129732-B2-Basic-Combo-Boxes-sample-bug.&highlight=combo

- remote store pageSize param does not work : 25 is sent every time even with different setting

- remote store paging plugin does not send "query" param to the server on page change or refresh

- remote store paging plugin does not restart to page 1 (or last page) on query change if the new list is smaller than previous one. Eg : you have a 3 pages list result but plugin still set on page 8.

baest
14 Apr 2011, 5:03 AM
Also the trigger image is not shown in Google Chrome (even in the Extjs4 combobox examples)

ldonofrio
14 Apr 2011, 5:10 AM
Also, multiSelect: true and forceSelection: true causes to lost combo value on blur

pkli
14 Apr 2011, 5:11 AM
"trigger image is not shown in Google Chrome" : not for me.
Ext4 B2, Chrome 10.0 Mac/PC : triggers are shown.

baest
14 Apr 2011, 5:15 AM
"trigger image is not shown in Google Chrome" : not for me.
Ext4 B2, Chrome 10.0 Mac/PC : triggers are shown.

Ok, I'm using the devel version of Chrome. Ext4 B2, Chrome 12.0.733.0 Mac. I can confirm it works in Chrome 10 on Linux. Could be a Chrome devel bug then

James Goddard
27 Apr 2011, 7:01 AM
Number 2 is fixed in the release version. Number 1 and 3 are still open.

baest
28 Apr 2011, 1:08 AM
Problem with remote combobox with matchFieldWidth:false in final
Described in http://www.sencha.com/forum/showthread.php?131666-combobox-picker-problem-when-matchFieldWidth-false&p=595877

jminnick
28 Apr 2011, 6:55 AM
May I also add...



mode:'local'


should not load data when the trigger is clicked yet it does.

sorry,



queryMode:'local'


works just fine. I'll leave this here in case someone else gets lazy reading the API docs.

ldonofrio
28 Apr 2011, 7:32 AM
You are wrong, mode is now "queryMode"

kntrip
10 May 2011, 5:04 AM
In the meanwhile itís not solved by the devs i apply the next fixes
remote store pagesize bug


Ext.view.BoundList.prototype.createPagingToolbar = function() {
//assign pagesize to store
this.store.pageSize = this.pageSize;
return Ext.widget('pagingtoolbar', {
pageSize: this.pageSize,
store: this.store,
border: false
});
};

don't know if it affects any other boundlist functionality, it seems not...

the page count restart when requerying combo can be fixed with


if(me.pageSize){
store.currentPage = 1;
}


in combobox doquery before store.load

the list width can be solved replacing


if (me.matchFieldWidth) {
picker.setSize(me.bodyEl.getWidth(), picker.store && picker.store.getCount() ? null : 0);
}

with


picker.setSize(me.matchFieldWidth?me.bodyEl.getWidth():undefined, picker.store && picker.store.getCount() ? null : 0);

int Ext.form.field.Picker.alignPicker()

but the really annoying thing is remote store paging plugin does not send "query" param to the server on page change or refresh, someone has any news/fix on this?