I think this can be achieved by these steps:
- Setting the filter
- Refreshing the grid (not the datasource)
Example code:
var filterArray = new Array();
filterArray.push({field: 'Duration', operator: 'Equal', value:20});
filterArray.push({field: 'AgentName', operator: 'Contains', value: 'a'});
$("#grid").data("kendoGrid").dataSource._filter = { logic: "and", filters: filterArray };
$("#grid").data("kendoGrid").refresh();
Live example can be found here (Fill in something at FirstName contains and click the Add Filter button)