I sure hope you don't try to filter a full gridview and provide the full results at once.You will run into problems of performance very soon.
What i undead up (had a somewhat same issue) was using the ROW_NUMBER() sql function that allowed me to create a fast paging gridview.Note this can be done with objectdatasource (search ROW_NUMBER() + objectdatasource, you will find examples) but the drawback is (as sadly found out) that you cannot have multiple filters.I use 2-3 filters at a time and the objectdatasource with ROW_NUMBER() will only accept one.If you want one filter though you can use this approach.
Again don't feed the gridview with all the results, i know it's sort of ok in winforms but it's a nightmare here, performance will go down probably at half,steadily with each user added.
I would use SlickGrid also but it's a javascript nightmare for me as i'm not good at it.So...Ah you can also use a web service on the grid instead of the updatepanel.The performance is medium at least with the damn ajax stuff.Having said that i am currently using updatepanels but i had 70% of the site ready and i couldn't stall to go back and use web service or WCF.
If you are creating the site from scratch the try to limit then updatepanels.They are round and fuzzy and cute but they can bite you.