Solved

partial search in asp.net Listbox using javascript

Posted on 2008-10-28
8
710 Views
Last Modified: 2012-05-05
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.

0
Comment
Question by:needo_jee
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 5
  • 3
8 Comments
 
LVL 12

Accepted Solution

by:
techExtreme earned 500 total points
ID: 22821246
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
 
LVL 12

Author Comment

by:needo_jee
ID: 22823118
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
 
LVL 12

Expert Comment

by:techExtreme
ID: 22823273
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
Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
LVL 12

Author Comment

by:needo_jee
ID: 22823495
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
 
LVL 12

Author Comment

by:needo_jee
ID: 22824272
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
 
LVL 12

Expert Comment

by:techExtreme
ID: 22825020
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
 
LVL 12

Author Comment

by:needo_jee
ID: 22827808
I dont want to use ajax for this.
0
 
LVL 12

Author Comment

by:needo_jee
ID: 22828923
Any suggestions please.
0

Featured Post

Free Tool: IP Lookup

Get more info about an IP address or domain name, such as organization, abuse contacts and geolocation.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

The Confluence of Individual Knowledge and the Collective Intelligence At this writing (summer 2013) the term API (http://dictionary.reference.com/browse/API?s=t) has made its way into the popular lexicon of the English language.  A few years ago, …
International Data Corporation (IDC) prognosticates that before the current the year gets over disbursing on IT framework products to be sent in cloud environs will be $37.1B.
Although Jacob Bernoulli (1654-1705) has been credited as the creator of "Binomial Distribution Table", Gottfried Leibniz (1646-1716) did his dissertation on the subject in 1666; Leibniz you may recall is the co-inventor of "Calculus" and beat Isaac…

756 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question