Start Building Professional
Web Apps Today


 
Categories Question details Back To List
Question  posted by Mohammad on Jul 08, 2008 01:58
open dhtmlx forum
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?


Answer posted by Support on Jul 08, 2008 02:22
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();
Answer posted on Jul 08, 2008 02:34

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

 

Answer posted by Support on Jul 08, 2008 02:47
>>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();
    });
Answer posted on Jul 08, 2008 04:49

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!?

 

 

Answer posted by Support on Jul 08, 2008 08:25
>>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.
Answer posted on Jul 09, 2008 03:14

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

Answer posted by Support on Jul 09, 2008 03:41
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.