All you need to do is add another parameter to your method for each control you want to filter on:
public IQueryable<transactionhistory> TransactionHistoryGrid_GetData(
[Control("LikeCategoryName")] string category,
[Control("SecondFilterControl")] string secondFilter,
[Control("AnotherFilterHere")] int? anotherFilter)
{
...
}
Then apply any filters which have a value to your query:
if (!string.IsNullOrEmpty(category))
{
query = query.Where(c => c.CategoryName.Contains(category));
}
if (!string.IsNullOrEmpty(secondFilter))
{
query = query.Where(c => c.SomeOtherField.StartsWith(secondFilter));
}
if (anotherFilter != null)
{
DateTime minimumDate = DateTime.Today.AddDays(-anotherFilter.GetValueOrDefault());
query = query.Where(c => c.SomeDateField >= minimumDate);
}
Model Binding and Web Forms in Visual Studio 2013 | Microsoft Docs[
^]