partial search in asp.net Listbox using javascript

In normal cases If we have a listbox with 4 items as follows:

 1234

 456

 34567

 2345

and user selects first item in listbox and press 2 key 4th row will be highlighted. I have a listbox with items in a format ( code-description) e.g 1234-iteone,123-safeitem.I want to allow user to select first item in listbox and if user press saf then second row should be highlighted.

I  suppose I was able to explain properly. Let me know If you have any suggestion. All this need to be done using javascript functions without ajax etc.

LVL 12
Munawar HussainPrincipal Software EngineerAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

techExtremeCommented:
Hello,
This is exactly what you need.
Go here
http://listbox-with-keybord-search.4wsearch.com/

It is free, has a demo link which opens a popup where the listbox is there and you can
start typing and partial search is done in it.

Hope it helped.

Happy Scripting!
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
Munawar HussainPrincipal Software EngineerAuthor Commented:
Thanks for your reply. But in this demo listbox item are added alphabetically ... I have listbox with items like 123-abc, 234-def and I want that if user presses a first item should be selected and so on.
0
techExtremeCommented:
Hello,
It will work with number too, have you tried downloading it?

Also, as you told it will also select the item.  Only you have to wait till it gets a distinct item.
For example if you have two items 123abc and 123def,  you start pressing 1...2...3, it will ultimately filter the items out and you will have those two items in the list, then the moment you press 'a'  it will become 123a and the second item (123def ) will be filtered out and 123abc will be selected in the listbox.

As when you just type 12, it won't know what to select 123abc or 123def, so just need to give proper input to let it identify the exact item you are looking for.

Hope it helped.
0
Cloud Class® Course: Certified Penetration Testing

This CPTE Certified Penetration Testing Engineer course covers everything you need to know about becoming a Certified Penetration Testing Engineer. Career Path: Professional roles include Ethical Hackers, Security Consultants, System Administrators, and Chief Security Officers.

Munawar HussainPrincipal Software EngineerAuthor Commented:
I want to type 'a' and want abc selected. I dont want user type 123-a to get 123-a selected. besides there is no textbox. I have only listbox. user will select first item and click 'a' from keyboard and  123-a item will be selected. if user presses a second time next item starting with a will be selected (e.g 123-asia)and so on.
0
Munawar HussainPrincipal Software EngineerAuthor Commented:
I have written following javascript code:

function autoSelect()
    {
     var keycode = event.keyCode;
     if(keycode < 65  || keycode > 90)
     {
      void(0);
     }
    else
    {
    var i=0;    
    var userPressed =  String.fromCharCode(keycode);
    var temp = [];    
   
    for (j = 0; j < document.Form1.ListBox1.options.length; j++)
           {  
           var arr = document.Form1.ListBox1.options[j].text.split("-");  
           var strToMatch = arr[1];
                 if(strToMatch.substring(0,1) == userPressed.toLowerCase())
                 {  
                                   
                 temp[i] = j;
                 i=i+1;
                  if(document.Form1.ListBox1.options[j].selected != true)
                  {
                    document.Form1.ListBox1.options[j].selected = true;
                    break;                
                   }                                
     
                 }                                                                          
           }
      }
   }

and here is how I use it :

  <asp:ListBox ID="ListBox1" runat="server" onkeydown="autoSelect();">

but It works for 2 items only like If i have 123-a,123-ab,123-abc,pressing a one time will select 123-a, pressing second time will select second one and thats it.

Any suggestion please?
0
techExtremeCommented:
Hello,
In case of only listbox, I guess you need the asp.net list search extender.
Have a look at this demo:

http://www.asp.net/AJAX/AjaxControlToolkit/Samples/ListSearch/ListSearch.aspx

Just click inside the listbox once and start typing , it will start selecting on the basis of what you type.

Hope it helped
0
Munawar HussainPrincipal Software EngineerAuthor Commented:
I dont want to use ajax for this.
0
Munawar HussainPrincipal Software EngineerAuthor Commented:
Any suggestions please.
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
ASP.NET

From novice to tech pro — start learning today.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.