Hi Balaji,
yes, you are right, same problem faced.
But I have also been seen that the filters from the third element onward are ignored, they work up to the second element.
In a column that contains only five unique values, if you deselect only last two values, the grid filters only first two values.
I use Internet Explorer 11 and Firefox 37.0.2, the issue is the same on both.
Thanks for your helps.
Rocco
My Controller:
//....
public enum FinderSubAction { RowsTotal, RowsIn, RowsOut, TableTotal, TableIn, TableOut }
/....
[HttpPost]
public ActionResult DataSource(Syncfusion.JavaScript.DataManager dataManager, FinderSubAction? finderSubAction, string messageIdentifier)
{
var messages = new MessageListTable();
var msgIdName = string.Empty;
if (messageIdentifier != null)
{
msgIdName = messageIdentifier;
}
IQueryable<MessageListRow> dataRows = null;
switch (finderSubAction)
{
case FinderSubAction.RowsIn:
dataRows = messages.RowsIn.Where(x => x.MessageIdentifierName.EndsWith(msgIdName));
break;
case FinderSubAction.RowsOut:
dataRows = messages.RowsOut.Where(x => x.MessageIdentifierName.EndsWith(msgIdName));
break;
case FinderSubAction.RowsTotal:
dataRows = messages.RowsAll.Where(x => x.MessageIdentifierName.EndsWith(msgIdName));
break;
case FinderSubAction.TableIn:
dataRows = messages.RowsIn;
break;
case FinderSubAction.TableOut:
dataRows = messages.RowsOut;
break;
case FinderSubAction.TableTotal:
default:
dataRows = messages.RowsAll;
break;
}
IEnumerable data = dataRows.Select(s => new MessageListRowModels
{
TransactionId = s.TrxId,
MessageIdentifier = s.MessageIdentifierName,
Sender = s.Trx.Sender,
Receiver = s.Trx.Receiver
}).ToList();
var count = dataRows.Count();
DataOperations operation = new DataOperations();
if (dataManager.Where != null && dataManager.Where.Count > 0) //Filtering
{
data = operation.PerformWhereFilter(data, dataManager.Where, "and");
var filtered = (IEnumerable<object>)data;
count = filtered.Count();
}
if (dataManager.Sorted != null && dataManager.Sorted.Count > 0) //Sorting
{
data = operation.PerformSorting(data, dataManager.Sorted);
}
if (dataManager.Search != null && dataManager.Search.Count > 0) //Searching
{
data = operation.PerformSearching(data, dataManager.Search);
var filtered = (IEnumerable<object>)data;
count = filtered.Count();
}
if (dataManager.Skip != 0)
{
data = operation.PerformSkip(data, dataManager.Skip);
}
if (dataManager.Take != 0)
{
data = operation.PerformTake(data, dataManager.Take);
}
DataResult result = new DataResult();
result.result = data;
result.count = count;
return Json(result, JsonRequestBehavior.AllowGet);
}