Handsontable löschen mehrerer Zeilen
Ich bin neu Handsontable. Ich bin versucht zu löschen, mehrere ausgewählte Zeilen der Tabelle mit 'getSelected " und " alter' Methoden (remove_row). Aber mit meinem code unten bekomme ich die Fehlermeldung "Auswahl" nicht definiert in Firebug und "Uncaught TypeError: Cannot read property '0' of undefined " in Chrome. Es spielt keine Rolle, welche Zeile ich wählen oder wie viele. Ich bekomme immer noch die Fehlermeldung und es werden keine Zeilen gelöscht. Was mache ich falsch bitte?
$(document).ready(function () {
var myData = [
["", "Kia", "Nissan", "Toyota", "Honda"],
["2008", 10, 11, 12, 13],
["2009", 20, 11, 14, 13],
["2010", 30, 15, 12, 13]
];
$("#exampleGrid").handsontable({
data: myData,
startRows: 5,
startCols: 5,
//minSpareCols: 1, //always keep at least 1 spare row at the right
//minSpareRows: 1, //always keep at least 1 spare row at the bottom,
rowHeaders: true,
colHeaders: true,
contextMenu: true,
currentRowClassName: 'currentRow',
currentColClassName: 'currentCol'
});
$edit = $('#exampleGrid');
function editRows() {
$('#addtop').on('click', function () {
$edit.handsontable('alter', 'insert_row', 0);
});
$('#addbottom').on('click', function () {
$edit.handsontable('alter', 'insert_row');
});
var selection = $edit.handsontable('getSelected');
$('.deletebutton').on('click', function () {
$edit.handsontable('alter', 'remove_row', selection[0], selection[2]);
});
}
editRows();
});
Hier ist meine Geige http://jsfiddle.net/EfhqJ/48/.
Dank.
- Gelöst. Ich brauchte zu bewegen getSelected innerhalb der on-handler: $('.deletebutton').auf('click', function () { var Auswahl = $edit.handsontable('getSelected'); if (Auswahl) { $edit.handsontable('alter', 'remove_row', Auswahl[0], Auswahl[2]); } });
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ihre "Auswahl" variable ist nicht sichtbar im Rahmen der onClick-handler.
Versuchen Sie "var Auswahl = ..." in der handler-Funktion.
So etwas wie...
So wie es momentan steht,
getSelected()
gibt nichts...das ist ein riesiges problem, da handsontable Referenzen, die Funktion ganz ein bisschen. Allerdings können wir zum Glück mit der afterSelectionEnd Veranstaltung.
Entsprechend der API,
Bedeutet dies in der Bestellung zu verwenden
alter('remove_row')
wir brauchen nur den index.Hier ist ein arbeiten demo ich gemacht, um das gewünschte Ergebnis zu erhalten.
HINWEIS:
Aufgrund einer bug, müssen wir hinzufügen, eine gewisse Logik in der
afterSelectionEnd event
.JAVASCRIPT:
Hoffe, das hilft und lassen Sie mich wissen, wenn Sie etwas anderes benötigen!
müssen Sie nur hinzufügen
outsideClickDeselects: false
um Ihre Möglichkeiten der Konstruktor, dann erhalten Sie das richtige Ergebnis getSelected().und hier ist die live demo http://jsfiddle.net/czz82kL5/2/