Something very strange is happening when I am using the filter of KendoUI Grid. My grid is very simple and the definition is like this:
var cols = [];
cols[0] = { field: 'name', title: 'Nome', width: "65%" };
cols[1] = { field: 'eMail', title: 'eMail', width: "20%" };
cols[2] = { field: 'city', title: 'Cidade', width: "15%" };var cfgGrid = { dataSource: dsPersons,
batch: false,
change: onSelectedRow,
selectable: "row",
resizable: true,
scrollable: true,
sortable: { mode: 'multiple', allowUnsort: true },
filterable: true,
editable: false,
pageable: { numeric: false },
columns: cols };gridPessoas = null;
The grid is displayed correctly in url:
gridPessoas = $("#gridElem").kendoGrid(cfgGrid).data("kendoGrid");
But when I try to filter any column kendoUI redirects to a page:
http://localhost:50409/undefined?
The Datasource was defined like that:
var ds = { data: persons,
schema: model,
filter: {},
serverPaging: false,
serverFiltering: false,
pageSize: 12 };
The grid is ok and the error only occurs when I define a filter value and click on the filter button.
This is an ASP.NET MVC 4 site. I cannot imagine what is going on.
Can you help me ???
Thanks in advance
@(Html.Kendo().Grid<TaskViewModel>() .Name("UserTasksGrid") .Columns(column => { column.Bound(task => task.Title); column.Bound(task => task.IsCompleted) .ClientTemplate("<input type=\"checkbox\" #= (IsCompleted === true) ? checked='checked' : '' # disabled=\"true\"") column.Bound(task => task.TaskType) column.Bound(task => task.DueDate).Format("{0:yyyy-MM-dd}") column.Bound(task => task.CompletedOn) .ClientTemplate("#= (IsCompleted == false) ? '' : kendo.toString(CompletedOn, 'yyyy-MM-dd') #") column.Template(model => model).ClientTemplate("<a href='/production/index?productionId=#=ProductionId#' style=\"width:\">GÃ¥ till produktionssida</a>"); }) .Filterable() .Sortable() .Scrollable(scroll => scroll.Height(300)) .Pageable() .DataSource(dataSource => dataSource .Ajax() .PageSize(20) .ServerOperation(false) .Model(model => model.Id(m=> m.Id)) .Sort(sort => sort.Add(task => task.IsCompleted)) .Read(read => read.Action("UserTasks_Read", "Task")) )).ColumnMenu(menu => menu.Sortable(true))<script id="treeview-template" type="text/kendo-ui-template"> #: item.Name # </script> <script> var meterid = 1179; var treeurl = 'treeview_remote_url'; var datatree = new kendo.data.HierarchicalDataSource({ transport: { read: { url: treeurl, dataType: "json", cache: true } }, schema: { model: { children: "Children", fields: { id: { type: "number" }, Name: { type: "string" } } } } }); function onSelect(e) { var treeview = $("#treeview").kendoTreeView({ select: function () { meterid = ($(this).text()); } }); $("#grid").data("kendoGrid").dataSource.read(); } $(document).ready(function () { $("#treeview").kendoTreeView( { template: kendo.template($("#treeview-template").html()), dataSource: datatree, dataTextField: "id" }); var treeview = $("#treeview"), kendoTreeView = treeview.data("kendoTreeView"); treeview.on("click", ".k-in", function (e) { kendoTreeView.toggle($(e.target).closest(".k-item")); onSelect(); }); });<script> var dateRegExp = /^\/Date\((.*?)\)\/$/; function toDate(value) { var date = dateRegExp.exec(value); return new Date(parseInt(date[1])); } sourceUrl = "grid_remote_url... &id=" + meterid; $(document).ready(function () { $("#grid").kendoGrid({ dataSource: { type: "json", transport: { read: sourceUrl }, refresh: true, serverSorting: true, scrollable: true }, height: '100%', scrollable: { virtual: false }, columns: [ { field: "data", title: "Date/Time", template: '#= kendo.toString(toDate(data), "dd/MM/yyyy HH:ss")#', width: '10%' }, { field: "valoare", title: "Energy (MWh)", template: '#= kendo.toString(valoare, "n5")#' }, { field: "valoare", title: "Energy (MWh)", template: '#= kendo.toString(valoare, "n5")#' } ] }); }); </script>