2017-10-09 7 views
0

J'ai une grille de kendo dans laquelle je veux ouvrir une cellule pour l'éditer. Le point est d'ouvrir une certaine cellule basée sur l'index donné d'une rangée. J'ai reçu du code comme ça dans une autre page de mon application où cela fonctionne parfaitement mais dans cette grille il refuse d'ouvrir le mode d'édition. J'ai essayé ceci dans un dojo de telerik aussi bien où cela fonctionne aussi comme prévu.Kendo-grid editCell ne fonctionne pas

Remarque: Dans mon autre grille où le code fonctionne parfaitement, l'index doit être +1 pour l'édition (pas la sélection), mais quand j'ai essayé la même chose ici, cela n'a pas fonctionné.

code:

var gridloc = $("#ItemLocGrid").data("kendoGrid"); 
var dataloc = $("#ItemLocGrid").data("kendoGrid").dataSource; 
var alldataloc = gridloc.dataSource.data(); 

$.each(alldataloc, function (index, item) { 
if (item.Barcode == code) { 
    item.PickedStock++; 
    item.dirty = true; 
    console.log(index); 

    //This works for selecting the right row or the right cell(row 0) 
    gridloc.select("tr:eq(" + (index) + ")"); 
    gridloc.select("td:eq(" + (2) + ")"); 

    //This works 
    gridloc.select("tr:eq("+(1)+") td:eq("+ (2) +")"); 

    //This works (but only for row index 0) 
    gridloc.editCell(gridloc.tbody.find("td").eq(2)); 

    //This doesn't work (should do exactly the same as the line above) 
    gridloc.editCell("td:eq(" + (2) + ")"); 

    //This is the wanted code which worked in a different grid and dojo 
    gridloc.editCell("tr:eq("+(index)+")td:eq("+(2)+")"); 
} 
}) 

Répondre

0

Pour une raison quelconque le même code j'ai essayé de réutiliser ne fonctionne pas ici (gridloc.editCell("tr:eq("+(index+1)+") td:eq("+(2)+")");). Cependant le reconstruire à cela a fait l'affaire

0

Pouvez-vous essayer:

//This doesn't work (should do exactly the same as the line above) 
gridloc.editCell("td:eq(" + (2) + ")"); 

sans parenthèses?

//This doesn't work (should do exactly the same as the line above) 
gridloc.editCell("td:eq(" + 2 + ")"); 
+0

Ne change rien quand je l'enlève. – Alim

+0

Et en ajoutant un espace dans ce dernier? gridloc.editCell ("tr: eq (" + (index) + ") td: eq (" + (2) + ")"); D'ailleurs, l'index de ligne commence à 1 et l'index de cellule commence à 0 –

+0

ouais essayé cela aussi mais sans succès (et index + 1 ainsi). c'est plutôt bizarre parce que si je remplace editCell avec select, il sélectionne la bonne cellule ('gridloc.select (" tr: eq ("+ (index + 1) +") td: eq ("+ (2) +") "); '). – Alim