Your Privacy Matters: We use our own and third-party cookies to improve your experience on our website. By continuing to use the website we understand that you accept their use. Cookie Policy
705
Design help / Advice
posted

I have a request to implement a webDropdown so that it functions like the bing.com website.  We have a repository of serial numbers to search.  I'm not doing the actual coding but I need to get the programmer as much info as possible so that the requirements can actually be met.

I have three major starting points of which the first two are easy.

1 - I've decided to pre-populate the dropdown with a list of prior searches and MRU numbers.  That should appease anyone re-doing the same search.

2 - At anypoint that the user hits the search or enter button whatever they have typed it will be searched and results shown.

3 - this is where the user wants fancy.  They want the auto-complete/auto-fill to really kick in on their potential search term and essentially do as they type typing.  Much of the time the pre-populated data won't be what they want so after a few input characters it should mostly be filtered away.

However I don't want to start actually auto-searching for anything against the database until I had at least 3 or 4 characters entered (excluding wildcards).  The first actual search term against the DB will take their '123' and do a search on '123%'.  If they start doing a contains search '%123' then all bets are off and I think we'll disable the auto-filter results until after a search results page has been generated.

I need to have some further chats, and get a prototype in place before the users can get a real sense of how much lag time there is but what I want to avoid is if a user quickly types 7 characters and then pauses that I do a search after 3 characters and waste time.  I had planned on using the Client side keyDown or related events to count the number of input characters and then on 3 call my data load.  If you go to bing or google and type really fast then the dropdown doesn't offer any choices.  I want to simulate that.  Is there a way to setup a timer to catch a time lag of x milliseconds between keypresses as sufficient time to do an async search?

Are there any pitfalls / issues to worry about with trying to change the contents of the binded datasource after x keypresses?  I'm sort of assuming I set it up as LoadOnDemand + SearchFilter.  Then each keypress should trigger a check on the server which should find a new set of data and rebind?

Is my best example to try and simulate one of the chained dropdown lists?

thanks

jack

 

 

 

Parents
  • 24671
    posted

    Hi Jack,

    You can control this behavior by setting the AutoFilterTimeoutMs property. Higher value means that after every keystroke, a X ms timeout is initiated, and if no characters are entered in that time, the search is made. Otherwise the timeout is reset, and a new one is started. This means that if your timeout is 1 sec, and the user types more than 1 character in a second, no request will be made until he ends typing himself. 

    About your second question - i don't think there are any specific pitfalls, it depends to what type of datasource you are going to be binding. If it's going to be a data source object, such as a DataSet/DataTable , then you'd need to keep in mind to store the object in the session and check for IsPostBack, or if you don't want ViewState to be enabled, you'll have to rebind on every postback. Other than that i think it should be straightforward.

    Let me know if you have any other questions. Hope this helps,

    Angel

     

Reply Children