Posted 10 April 2018, 9:58 am EST
Hello;
We would like to append a new row when pressing enter key on last column. The example code works perfectly but when we edit any value on grid the example code does not work. It appends a new row but we can’t focus the new row.
I uploaded the issue video on sendspace.
Video link : https://www.sendspace.com/filegroup/aLZ%2BC9PBPSNTs5wpt3mdWg
Example Code
Html : ```
<wj-flex-grid #flexGrid [itemsSource]=“collectionView” (keydown)=“keyDown(flexGrid,$event)”>
<wj-flex-grid-column [header]=“‘a’” [binding]=“‘a’”>
<wj-flex-grid-column [header]=“‘b’” [binding]=“‘b’”>
<wj-flex-grid-column [header]=“‘c’” [binding]=“‘c’”>
Ts : ```
keyDown(flexGrid, event) {
const e = event;
const s = flexGrid;
const n = (window.event) ? e.which : e.keyCode;
const selectedCellRange = s.selection;
if (n === 13) {
e.preventDefault();
if (s.selection.col !== s.columns.length - 1) {
if (!s.columns[s.selection.col].isReadOnly) {
if (s.activeEditor) {
s.endUpdate();
selectedCellRange.col = selectedCellRange.col + 1;
selectedCellRange.row2 = selectedCellRange.row;
selectedCellRange.col2 = selectedCellRange.col;
s.select(selectedCellRange, true);
s.startEditing(true, e.row, e.col, true);
} else {
s.startEditing(true, e.row, e.col, true);
}
} else {
selectedCellRange.col = selectedCellRange.col + 1;
selectedCellRange.row2 = selectedCellRange.row;
selectedCellRange.col2 = selectedCellRange.col;
s.select(selectedCellRange, true);
}
} else if (s.selection.col === s.columns.length - 1) {
if (s.selection.row === s.rows.length - 1 && n === 13) {
this.setNewLine();
this.linesCollectionView.refresh();
}
selectedCellRange.row = selectedCellRange.row + 1;
selectedCellRange.col = 0;
selectedCellRange.row2 = selectedCellRange.row;
selectedCellRange.col2 = 0;
s.select(selectedCellRange, true);
}
}
}
setNewLine() {
this.columns.push({
a: '',
b: '',
c: ''
});
}
