You can either implement caching in your application level or disable the server-side operations (paging, sorting etc) of the grid's data source. Then the grid will make a single request for all data and keep it in memory at the client-side.
.DataSource(dataSource => dataSource
On the other hand the ToDataSourceResult method uses LINQ expression trees in order to minimize the amount of data retrieved from the data base. For example it only retrieves a single page of data (determined by the PageSize option). Of course you need to give an IQueryable instance returned from a LINQ-enabled provider (Entity Framework, Linq 2 SQL).
Join us on our journey to create the world's most complete HTML 5 UI Framework - download Kendo UI