views:

27

answers:

1

I have an ASP.NET page where at the top of the page is a search box. There are 2 text boxes - one is an autocomplete extender for the Name on a database, and one is just inputting the ID.

The page features DetailsViews and GridViews primarily, and even when no account has been searched for, these display blank data which is not ideal. I sort of fixed this by using if (IsPostBack), encasing the elements in a placeholder and setting it to visible only if the page ispostback. But this doesn't cover if the user types in an incorrect ID.

Also, some accounts have huge amounts of data inside the GridView's. I had an issue where because I have no way of detecting when a data source's rows has changed, I end up binding whenever the page loads (Page_Load method). I've come to realise this is simply very bad - there are lots of times when the user can click various things in the page and have the page postback, and it takes an eternity to load each time I click something for accounts with lots of data.

Anyway, my question is essentially two-fold but I have a feeling the solution will be similar:

1: How can I detect when there are no accounts returned when searching, and disable the Grids/Detailsviews and show an error message?

2: How can I figure out when the user searches for another account and only rebind the grids after that has happened?

Thanks

A: 

This method is very ugly but it'll get the work done.

1) To Check whether there are no records; after the AutoComplete Extenders Webservice is called if no record is returned put some value in Session like

  Session["NoData"]=true;

if Records are found then;

  Session["NoData"]=false;

after the webservice is called do ajax request to check that session & on the basis of value do what you want.

2) You can achieve this also by following the above option.

KhanZeeshan
also Check this out: http://forums.asp.net/t/1172510.aspx
KhanZeeshan
Cheers buddy, been playing around with it but I'm a bit confused on how to check if the SqlDataSource has returned any accounts on each page load, so I can set the session to false.
Chris
Check this; http://forums.asp.net/t/984353.aspx
KhanZeeshan