We are seeing an issue where the Change event for Grid is firing as if it was the Databind event. We get a console log event on load and when we filter the grid to cause another bind, but not when I click select on a row. I want to redirect to a details page for that row when the user clicks.
<div
class
=
"ci-body-grid"
>
@(Html.Kendo().Grid<OrderViewModel>()
.Name(
"gridMain"
)
.Columns(columns => {
columns.Bound(e => e.OrderID).Filterable(
false
);
columns.Bound(e => e.Freight);
columns.Bound(e => e.OrderDate).Width(120).Format(
"{0:MM/dd/yyyy}"
);
columns.Bound(e => e.ShipName).Width(260).Filterable(filterable => filterable.Cell(cell => cell.Operator(
"contains"
).ShowOperators(
false
)));
columns.Bound(e => e.ShipCity).Width(150);
})
.Excel(excel => {
excel.AllPages(
true
);
excel.FileName(
"Users.xlsx"
);
})
.ToolBar(toolbar => { toolbar.ClientTemplateId(
"tmpGridToolbar"
); })
.Pageable(pageable => pageable.Refresh(
true
).Numeric(
false
).PreviousNext(
false
))
.Selectable(selectable => selectable.Mode(GridSelectionMode.Single).Type(GridSelectionType.Cell))
.Navigatable()
.Mobile()
.Resizable(resize => resize.Columns(
true
))
.ColumnMenu()
.Sortable()
.Scrollable(scrollable => scrollable.Virtual(
true
))
.Filterable(filterable => filterable.Mode(GridFilterMode.Row))
.DataSource(dataSource => dataSource
.Custom()
.Events(events => events.Change(
"gridMain_OnChange"
).Error(
"error_handler"
))
.Type(
"odata"
)
.Transport(transport =>
transport.Read(read => read.Url(
"https://demos.telerik.com/kendo-ui/service/Northwind.svc/Orders"
))
)
.PageSize(100)
.ServerPaging(
true
)
.ServerSorting(
true
)
.ServerFiltering(
true
)
))
</div>
<script id=
"tmpGridToolbar"
type=
"text/x-kendo-template"
>
<span
class
=
"ci-header-grid"
>Users</span>
<div
class
=
"k-float-right k-display-inline-block"
>
@(Html.Kendo().Button().Name(
"btnExport"
).Icon(
"file-excel"
).Content(
"Export"
).Events(evt => evt.Click(
"exportGrid"
)).ToClientTemplate())
</div>
</script>
@section Scripts {
<script>
function exportGrid() {
$(
"#gridMain"
).data(
"kendoGrid"
).saveAsExcel();
}
function resizeGrid() {
$(
"#gridMain"
).data(
"kendoGrid"
).resize();
}
$(window).resize(function () {
resizeGrid();
});
function gridMain_OnChange(arg) {
var test =
""
;
console.log(
this
);
//var selected = $.map(this.select(), function (item) {
// return $(item).text();
//});
//console.log("Selected: " + selected.length + " item(s), [" + selected.join(", ") + "]");
}
</script>
}