Kendo grid y checkbox
Ejemplo de como obtener los checkbox seleccionados dentro de un kendo grid y la información asociada.
HTML
<script src="http://cdn.kendostatic.com/2013.2.918/js/kendo.all.min.js"></script>
<link rel="stylesheet" href="http://cdn.kendostatic.com/2013.2.918/styles/kendo.common.min.css">
<link rel="stylesheet" href="http://cdn.kendostatic.com/2013.2.918/styles/kendo.default.min.css">
<div id="grid"></div>
<a href="#" id="guardar" class="k-button k-button-icontext">
Guardar
</a>
JavaScript
0// datos de ejemplo
var datos = [
{id: 1, nombre: "mike"},
{id: 2, nombre: "judy"},
{id: 3, nombre: "eddy"},
{id: 4, nombre: "betsy"}
];
// datasource del grid (se usa también en el click del guardar)
var ds = new kendo.data.DataSource({
data: datos
});
// columnas del grid, notar los dos templates.
var gridColumns = [
{field: "id", title: "ID"},
{field: "nombre", title: "Nombre"},
{title: "Seleccionar?", template: '<input type="checkbox" name="seleccionar" />'},
{title: "Comentario", template: '<input type="text" name="comentario" />'}
];
// se crea el kendoGrid
$('#grid').kendoGrid({
dataSource: ds,
columns: gridColumns
});
$('#guardar').click(function (e) {
e.preventDefault();
// se obtienen los items seleccionados.
var itemsSeleccionados = [];
// se buscan con jQuery y Attribute Selectors,
// todos aquellos "inputs" de tipo "checkbox",
// que tengan como nombre "seleccionar" y que
// además estén "chequeados".
// luego se recorren con la función each de jQuery.
$('input[name=seleccionar][type=checkbox]:checked')
.each(function (i, checkbox) {
// obtenemos la fila mas cercana al checkbox
// en este caso es la fila en la que se encuentra.
var $fila = $(checkbox).closest("tr");
// buscamos dentro de la fila un input que
// se llame "comentario" y obtenemos su valor
var comentario = $fila.find('input[name=comentario]').val();
// se obtiene el identificador unico del item.
// es el atributo "data-uid" de la fila.
var itemUid = $fila.data("uid");
// se busca el item en base al uid
// se usa el método getByUid del kendo.data.DataSource
var item = ds.getByUid(itemUid);
var itemId = item.id;
// agregamos el id y el comentario al arreglo
// de ítems seleccionados.
itemsSeleccionados.push({
id:...