dhtmlxCombo, big unicode datasets

Im using dhtmlxCombo with big unicode datasets (it means From dynamic XML source, with auto sub-load) it works Properly but the filtering and Autocomplete did not work. I must press a ascii character for example space or right or left arrow key till it work.



any suggestion Please?





Combo uses onkeyup event to monitor changes in input.
If such event was generated and pressed key is not an “enter” or “backspace” - the combo will filter self.
If you are using some non default text entering method - it possible that onkeup event is not generated.

The filtering can be triggered manually , by calling
    combo.filterSelf();


Yes I know it uses onkeyup event, it works properly fro english text  for example (a, b , c or d) but when Im wirting some non-english right to left text for example farsi characters like (م، ص، آ or ژ) it’s apear the combo do not filter it self Automaticly!



>If you are using some non default text entering method
what do you mean non defaul text enetering? Im using normal keyboard to type texts!



Thank you so much for your kind support



Mohammad



 

what do you mean non defaul text enetering? Im using normal keyboard to type texts!
Browser support some special input ways for complex languages , which may generate events slightly different.

You can try to add custom event handler to combo and force updates on keypressing
    dhtmlxEvent(combo.DOMelem_input,“keypress”,function(){
       combo.filterSelf();
    });


Im tested on



IE 7.0.6000.16681  Everything works properly
IE 6.0.2900.2180, keypress event not fired when enetering unicode character
FF 2.0.0.14, keypress event not fired when enetering unicode character



So How can I force update when cant grab the keypress event!?



 



 

So How can I force update when cant grab the keypress event!?
Whilt it is a pretty rough solution, you can try next

var old="";
window.setInterval(function(){
    var text = combo.getComboText();
    if (text!=old)
       combo.filterSelf();
    old=text;
},500);

With such aproach code will check value of combo twice per second and if it was changed - it will force filtering.


Since now I found:



this.DOMelem_input.onkeydown did not grab so _onKey function which call _onKeyB which calls selfFilter did not called! merged  _onKeyF and and _onKey functions and comment this line



//this.DOMelem_input.onkeydown = this._onKey;



now everything works properly in all the bowser which i called…



What’s your Idea?



Mohammad

The existing key events separation was implemented in such way to process tab-key correctly ( in some browser it may be catched only from onkeydown event )
The update itself is safe and must not cause any side effects.

We will investigate situation more closely and may be change the way of key events binding in next version of dhtmlxCombo, to prevent such problems.