Solved

partial search in asp.net Listbox using javascript

Posted on 2008-10-28
8
697 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
  • 5
  • 3
8 Comments
 
LVL 12

Accepted Solution

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

Author Comment

by:needo_jee
Comment Utility
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
What Is Threat Intelligence?

Threat intelligence is often discussed, but rarely understood. Starting with a precise definition, along with clear business goals, is essential.

 
LVL 12

Author Comment

by:needo_jee
Comment Utility
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
Comment Utility
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
Comment Utility
I dont want to use ajax for this.
0
 
LVL 12

Author Comment

by:needo_jee
Comment Utility
Any suggestions please.
0

Featured Post

Highfive + Dolby Voice = No More Audio Complaints!

Poor audio quality is one of the top reasons people don’t use video conferencing. Get the crispest, clearest audio powered by Dolby Voice in every meeting. Highfive and Dolby Voice deliver the best video conferencing and audio experience for every meeting and every room.

Join & Write a Comment

Problem Hi all,    While many today have fast Internet connection, there are many still who do not, or are connecting through devices with a slower connect, so light web pages and fast load times are still popular.    If your ASP.NET page …
OverviewThis article demonstrates a simple search form using AJAX. The purpose of the article is to demonstrate how to use the same code to render a page and javascript (JQuery) and AJAX to make subsequent calls to refine the results. The princip…
This demo shows you how to set up the containerized NetScaler CPX with NetScaler Management and Analytics System in a non-routable Mesos/Marathon environment for use with Micro-Services applications.
This video demonstrates how to create an example email signature rule for a department in a company using CodeTwo Exchange Rules. The signature will be inserted beneath users' latest emails in conversations and will be displayed in users' Sent Items…

763 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

Need Help in Real-Time?

Connect with top rated Experts

9 Experts available now in Live!

Get 1:1 Help Now