Posted on 2011-02-18
Last Modified: 2012-05-11
using ASP.Net with c#.
I want to filter the gridview data based on what is typed in a textbox. What I am currently doing is as follows: I have a "Filter" Button and it filters the cached data when the button is pressed.
What I want to accomplish is that it should filter as the user types in the textbox. for this I tried using the "OnTextChanged" event, but the user still has to take the focus away from the text box for the filter to kick in.

Is there any way it I can have the filter to work as the user types in the textbox without taking the focus away from the textbox.

Question by:patd1
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
  • 2
  • 2
  • +1
LVL 16

Accepted Solution

sjklein42 earned 167 total points
ID: 34928913
I believe there is an onKeyUp function that might be useful in this context.

Author Comment

ID: 34929060
ok, that sound promising, but how do i call server side method from javascript?

LVL 20

Expert Comment

ID: 34929069
onKeyUp should be a client side event I guess. It won't fire the server event.
Creating Instructional Tutorials  

For Any Use & On Any Platform

Contextual Guidance at the moment of need helps your employees/users adopt software o& achieve even the most complex tasks instantly. Boost knowledge retention, software adoption & employee engagement with easy solution.

LVL 20

Assisted Solution

informaniac earned 167 total points
ID: 34929184

Assisted Solution

Ramone_Hamilton earned 166 total points
ID: 34929319
informaniac is correct, the onkeyup event can be used for this but it is client side only.  You can add it to a textbox in code like the following:

TextBoxName.Attributes.Add("onkeyup", "SomeJavscriptMethod(this)");

Open in new window


Author Comment

ID: 34929403
I tried onkeyup, it's cool!
But I have to type it too quickly, before it shoots the postback. My users will be freaked out, as they may not be able to type more then one char before it fires, and they have to click again to bring the focus back to the text box. I don't know if I am able to explain it well.

Is there any way I can bring focus back on the text box after each RaisePostBackEvent? so the user can keep typing to narrow down the search?

Thank You.

Author Comment

ID: 34929440
And I wanted to add that I tried the this.TextBox1.Focus(); in the end of RaisePostBackEvent, but, it sets focus in the begining of the string. How do I put it at the end of the string.

thank you.
LVL 16

Expert Comment

ID: 34929441
The trick is to delay.

What I do in this situation is to set a short one-or-two second timeout when the onkeyup event fires, rather than do the search right away on every keystroke.  If there is already a timeout pending, i cancel it and start a new one.  Only when the timer eventually fires (the user has to have stopped typing for one or two seconds) should the actual search be done.

In client-side javascript I use setTimeout and clearTimeout functions.  Not sure how you would do it in your context.

Author Comment

ID: 34929609
I actually wrote another javascript to set focus on the textbox at the end of the string. It works, but seems to be too slow now.

Will the AJAx solution be faster?


Author Closing Comment

ID: 34930307

Featured Post

Industry Leaders: 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!

Question has a verified solution.

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

Suggested Solutions

Title # Comments Views Activity
itextsharp with c# 3 18
Upgrade code from VS 2010 to VS 2015 7 34
Problem to Office 1 45
Calculating percentage 2 32
There is an easy way, in .NET, to centralize the treatment of all unexpected errors. First of all, instead of launching the application directly in a Form, you need first to write a Sub called Main, in a module. Then, set the Startup Object to th…
Real-time is more about the business, not the technology. In day-to-day life, to make real-time decisions like buying or investing, business needs the latest information(e.g. Gold Rate/Stock Rate). Unlike traditional days, you need not wait for a fe…
The goal of this video is to provide viewers with basic examples to understand and use conditional statements in the C programming language.
The goal of the video will be to teach the user the difference and consequence of passing data by value vs passing data by reference in C++. An example of passing data by value as well as an example of passing data by reference will be be given. Bot…

730 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