pageable mvc kendo for editable demos grid kendo-ui

grid - mvc - kendo ui for jquery demos



cómo obtener el valor de la fila seleccionada en el KendoUI (4)

Creo que hay que verificar si alguna fila está seleccionada o no? El siguiente código lo comprobaría:

var entityGrid = $("#EntitesGrid").data("kendoGrid"); var selectedItem = entityGrid.dataItem(entityGrid.select()); if (selectedItem != undefined) alert("The Row Is SELECTED"); else alert("NO Row Is SELECTED")

Tengo una grilla de kendoUI.

@(Html.Kendo().Grid<EntityVM>() .Name("EntitesGrid") .HtmlAttributes(new { style = "height:750px;width:100%;scrollbar-face-color: #eff7fc;" }) .Columns(columns => { columns.Bound(e => e.Id).Hidden().IncludeInMenu(false); columns.Bound(e => e.EntityVersionId).Hidden().IncludeInMenu(false); columns.Bound(e => e.Name).Width("70%").Title("Entity Name"); columns.Bound(e => e.EIN).Width("30%"); }) .ToolBar(toolBar => toolBar.Template("<a class=''k-button k-button-icontext k-grid-add'' id=''addEntity''><span class=''k-icon k-add''></span>Entity</a>" + "<a class=''k-button k-button-icontext'' id=''editEntity''><span class=''k-icon k-edit''></span>Edit</a>")) .DataSource(dataSource => dataSource .Ajax().ServerOperation(false) .Model(model => model.Id(e => e.Id)) .Read(read => read.Action("GetEntities", "Entity", new { projectId = Request.QueryString[DataKeyNameConstants.ProjectId] }))) .Sortable() .Scrollable() .Filterable() .Resizable(resize => resize.Columns(true)) .Reorderable(reorder => reorder.Columns(true)) .ColumnMenu() .Selectable(s => s.Mode(GridSelectionMode.Multiple)) .Events(events => events.Change("entSelChange")) )

ahora, necesito obtener el valor de EntityVersionId de la fila seleccionada. Pero no estoy seguro de cómo hacerlo.

Aquí está mi función javascript

$("#editEntity").click(function () { var entityGrid = $("#EntitesGrid").data("kendoGrid"); // what should I do from here });

ACTUALIZACIÓN: agregar código para hacer un bucle de todas las filas.

function loadPreviousEntityVersion() { alert("sdfsdfsdf"); var entityGrid = $("#EntitesGrid").data("kendoGrid"); var data = entityGrid.dataSource.data(); for(var i = 0; i<data.length; i++) { var currentDataItem = data[i]; alert(dataItem.EntityVersionId); } }


Hay mejor manera Lo estoy usando en páginas donde estoy usando las directivas de kendo angularJS y las grillas no tienen ID ...

change: function (e) { var selectedDataItem = e != null ? e.sender.dataItem(e.sender.select()) : null; }


Si desea seleccionar un elemento en particular use el siguiente código

var gridRowData = $("<your grid name>").data("kendoGrid"); var selectedItem = gridRowData.dataItem(gridRowData.select()); var quote = selectedItem["<column name>"];


Una forma es usar los métodos select() y dataItem() .

En el caso de selección única, select() devolverá una sola fila que se puede pasar a dataItem()

var entityGrid = $("#EntitesGrid").data("kendoGrid"); var selectedItem = entityGrid.dataItem(entityGrid.select()); // selectedItem has EntityVersionId and the rest of your model

Para la selección de varias filas, select() devolverá una matriz de filas. Luego puede iterar a través de la matriz y las filas individuales se pueden pasar al dataItem() la cuadrícula.

var entityGrid = $("#EntitesGrid").data("kendoGrid"); var rows = entityGrid.select(); rows.each(function(index, row) { var selectedItem = entityGrid.dataItem(row); // selectedItem has EntityVersionId and the rest of your model });