De se faire contrôler les lignes de kendo de la grille
J'ai un kendo grille avec un contrôle de la boîte de colonne .J'ai essayé d'obtenir la dataitem lignes lorsque les cases à cocher correspondantes sont cochées.Sur le clic d'un bouton , j'ai besoin de pour obtenir uniquement les coché les lignes en JSon .Voici un JSfiddle j'ai été jouer avec.Il obtient seulement l'Id plutôt que de la ligne de données.J'ai essayé de les modifier de sorte qu'il peut renvoyer l'intégralité de la ligne de données .
var crudServiceBaseUrl = "http://demos.kendoui.com/service",
dataSource = new kendo.data.DataSource({
transport: {
read: {
url: crudServiceBaseUrl + "/Products",
dataType: "jsonp"
},
update: {
url: crudServiceBaseUrl + "/Products/Update",
dataType: "jsonp"
},
destroy: {
url: crudServiceBaseUrl + "/Products/Destroy",
dataType: "jsonp"
},
create: {
url: crudServiceBaseUrl + "/Products/Create",
dataType: "jsonp"
},
parameterMap: function (options, operation) {
if (operation !== "read" && options.models) {
return {
models: kendo.stringify(options.models)
};
}
}
},
batch: true,
pageSize: 20,
schema: {
model: {
id: "ProductID",
fields: {
ProductID: {
editable: false,
nullable: true
},
ProductName: {
validation: {
required: true
}
},
UnitPrice: {
type: "number",
validation: {
required: true,
min: 1
}
},
Discontinued: {
type: "boolean"
},
UnitsInStock: {
type: "number",
validation: {
min: 0,
required: true
}
}
}
}
}
});
//Grid definition
var grid = $("#grid").kendoGrid({
dataSource: dataSource,
pageable: true,
height: 430,
//define dataBound event handler
toolbar: ["create"],
columns: [
//define template column with checkbox and attach click event handler
{ template: "<input type='checkbox' class='checkbox' />" },
"ProductName", {
field: "UnitPrice",
title: "Unit Price",
format: "{0:c}",
width: "100px"
}, {
field: "UnitsInStock",
title: "Units In Stock",
width: "100px"
}, {
field: "Discontinued",
width: "100px"
}, {
command: ["edit", "destroy"],
title: " ",
width: "172px"
}
],
editable: "inline"
}).data("kendoGrid");
//bind click event to the checkbox
grid.table.on("change", ".checkbox" , selectRow);
$("#showSelection").bind("click", function () {
var items = [];
for(var i in checkedrows){
if(checkedrows[i]){
items.push([i]);
}
}
alert(JSON.stringify(itemss));
});
});
var checkedrows = {};
var itemss =[];
//on click of the checkbox:
function selectRow() {
var checked = this.checked,
row = $(this).closest("tr"),
grid = $("#grid").data("kendoGrid"),
dItem = grid.dataItem(row);
checkedrows[dItem.id] = checked;
if (checked) {
itemss.push(dItem)
//-select the row
}
else
{
itemss.pop(dataItem);
}
}
la ligne obtenez peut être consulté par le dataItem ,mais comment obtenir les dataItem en fonction de l'indice .Merci.
OriginalL'auteur user3623803 | 2014-05-10
Vous devez vous connecter pour publier un commentaire.
Pour recevoir uniquement les cases cochées, j'utilise ce
OriginalL'auteur Rui Martins
Vous pouvez stocker les éléments sélectionnés par
uid
, puis de les obtenir à partir de la source de données lorsque cela est nécessaire.Sélectionnez gestionnaire:
Pour obtenir le sérialisé tableau d'éléments:
(démo)
OriginalL'auteur Lars Höppner
Accepté la réponse est bonne en 2014 mais maintenant, l'api s'est améliorée. Vous pouvez utiliser l'extrait de code suivant pour obtenir les éléments de données. Notez que les lignes seront également sélectionnés et ainsi être retourné à partir de la grille.appel select ().
OriginalL'auteur Postlagerkarte
Vous pouvez le vérifier
vous pouvez également voir cette
OriginalL'auteur atik sarker