or
var dataSource = new kendo.data.DataSource({ serverPaging: true, serverFiltering: true, serverSorting: true, transport: { read: function (options) { $.ajax({ url: ".../api/{Controller}/GetData", type: "POST", success: function (data) { options.success(data); }, error: function (errorThrown) { alert(errorThrown); } }); }, create: function (options) { SaveData(options); }, update: function (options) { SaveData(options); }, }, schema: { type: "xml", data: "/ArrayOfType/Type", model: { id: "Type_ID", fields: { Type_ID: { field: "Type_ID/text()", type: "number", validation: { required: true } }, FieldA: { field: "FieldA/text()", type: "string", validation: { required: true, min: 1 } }, FieldB: { field: "FieldB/text()", type: "string", } } } }, pageSize: 50 });[System.Web.Http.ActionName("GetData")] [System.Web.Http.HttpPost] public ResponseMessageResult GetData([DataSourceRequest] DataSourceRequest request) { try { var list = _db.Load().ToDataSourceResult(request); var resp = ResponseMessage(new HttpResponseMessage(HttpStatusCode.OK) { Content = new ObjectContent<DataSourceRequest>(list, new System.Net.Http.Formatting.XmlMediaTypeFormatter { UseXmlSerializer = true }) }); resp.Response.Headers.Add("Access-Control-Allow-Origin", "*"); return resp; } catch (Exception ex) { Logger.LogError(ex); throw; } }@(Html.Kendo().Grid<URBIS.ViewModels.PropisiViewModel>().Name("grid").Events(e => e.DataBound("onDataBound")).Columns(columns =>{ columns.Bound(p => p.GrupePropisa).ClientTemplate("#=GrupePropisa.Naziv#").EditorTemplateName("GrupePropisa").Width(220); columns.Bound(p => p.Naziv).Width(220); columns.Bound(p => p.SluzbeniList).Width(220); //columns.Bound(p => p.Aktivan).Width(120); columns.Bound(p => p.Aktivan) .Title("Aktivan") .ClientTemplate("<input type='checkbox' #= Aktivan ? checked='checked': '' # class='chkbx' />") .HtmlAttributes(new {style = "text-align: center"}) .Width(50);})$(function () { $('#grid').on('click', '.chkbx', function () { var checked = $(this).is(':checked'); var grid = $('#grid').data().kendoGrid; var dataItem = grid.dataItem($(this).closest('tr')); dataItem.set('Aktivan', checked); });});public decimal MoneyValue{ get; set; }
public string MoneyName{ get; set; }

@(Html.Kendo() .Grid<IncidentBreakdownViewModel>() .Name("Grid") .DataSource(dataSource => dataSource .Ajax() .Batch(true) .ServerOperation(true) .Read(x => x.Route("PostReadJson", new { incidentId = Model.IncidentId })) .Create(x => x.Route("PostCreateJson", new { incidentId = Model.IncidentId })) .Destroy(x => x.Route("PostDeleteJson", new { incidentId = Model.IncidentId })) .Update(x => x.Route("PostUpdateJson", new { incidentId = Model.IncidentId })) .Model(model => model.Id(x => x.IncidentBreakdownId))) .Columns(columns => { columns .ForeignKey<int?>(
x => x.IncidentBreakdownTypeId,
(SelectList)ViewBag.IncidentBreakdownTypes) .Width(50); columns.Bound(x => x.PortfolioId).Width(150); columns.Bound(x => x.Currency).Width(100); columns.Bound(x => x.ErrorAmount).Width(50); columns .Bound(x => x.PaymentRequired) .ClientTemplate("#= PaymentRequired ? 'Yes' : 'No' #") .Width(50); columns.Command(command => { command.Edit(); command.Destroy(); }).Width(60); }) .ToolBar(toolbar => toolbar.Create().Text("Add new breakdown")) .Editable(x => x.Mode(GridEditMode.InLine)) .Resizable(resize => resize.Columns(true)) .Reorderable(reorder => reorder.Columns(true)) .Sortable(x => x.SortMode(GridSortMode.MultipleColumn)) .Navigatable())<script> function onGetClientData() { return { text: $("#PortfolioId").data("kendoComboBox").text() }; }</script>@(Html.Kendo() .ComboBoxFor(x => x) .Name("PortfolioId") .DataTextField("Text") .DataValueField("Value") .Filter(FilterType.Contains) .DataSource(dataSource => dataSource .Read(x => x .Route("GetClientsJson") .Data("onGetClientData")) .ServerFiltering(true)))