or
.Scrollable(s => s.Virtual(true).Height(532))public ActionResult IndexEmployeesGridData([DataSourceRequest] DataSourceRequest request){ var model = _employeeService.GetEmployeesDataViewModel(request.Page, request.PageSize).Where(e => e.IsActive); return Json(model.ToDataSourceResult(request), JsonRequestBehavior.AllowGet);}dataSource: { transport: { read: { type: "POST", url: "myurl", dataType: "json", contentType: "application/json; charset=utf-8" }, parameterMap: function (options, operation) { return { f: JSON.stringify("somedata") }; } }, schema: { //some code here.... } }parameterMap: function (options, operation) { }ModelState.AddModelError(Item.Id, "this value is outside of the valid range");01.function error_handler(e) {02. var data = e.sender._data;03. if (e.errors) {04. $.each(e.errors, function (key, value) {05. highlightError(data, key, value);06. });07. }08.}09. 10.function highlightError(data, key, value) {11. var grid = GetGrid("grid");12. for (var i = 0; i < data.length; i++) {13. var row = data[i];14. 15. if (row.id == key) {16. var hasError = $('[data-uid="' + row.uid + '"]');17. hasError.addClass('kendo-error-row'); //this seems to be working, but it doesn't survive the whole process.18. hasError[0].mouseover = function () { alert(errors[error].value); };19. }20. }21.}