在网格中插入新行时出现问题。焦点始终在网格的左上方。
问题是当我插入更多行时...页面返回上,这对用户来说很不方便。
我的想法是为每个新的插入行设置焦点,最好的模式是在新行的特定单元格中进行制表符焦点(必填字段Example Qta)。
这是我在javascript中的代码:
self.fromModel(data, self.CodArticolo, self.addingFromOrdineFornitore);
if (model.details.indexOf(self) == -1) {
model.details.splice(model.details.length - 1, 0, self);
在函数“ splice”中创建一个新行,并在网格中填充文章的详细信息....,这会将焦点设置在第一个单元格的左上方
为了进行测试,我尝试插入以下代码:
var data = $("#Movimenti").data("kendoGrid").dataSource.data();
for (var i = 0; i < data.length; i++) {
var dataItem = data[i];
if (i == model.details.length - 2) {
$("#Movimenti").data("kendoGrid").tbody.find("tr[data-uid=" + dataItem.uid + "]").effect("highlight", { color: "#f35800" }, 3000);
}
}
而且我可以确认找到正确的行并启动它起作用的效果...但是我没有找到在正确的行中设置焦点的解决方案。
你能帮助我吗?
最佳答案
嗨,添加以下代码来解决我的问题:
//Setto il focus all'interno dell'ultima riga inserita
var data = $("#Movimenti").data("kendoGrid").dataSource.data();
for (var i = 0; i < data.length; i++) {
var dataItem = data[i];
if (i == model.details.length - 2) {
var grid = $("#Movimenti").data("kendoGrid");
//var firstCell = grid.tbody.find("tr[data-uid=" + dataItem.uid + "] td:first");
var cellName = "Qta";
var cellIndex_1 = grid.element.find("th[data-field = '" + cellName + "']").index();
var focusCell = grid.tbody.find("tr[data-uid=" + dataItem.uid + "] td:eq(" + cellIndex_1 + ")");
grid.current(focusCell);
focusCell.focus();
focusCell.trigger("click");
在这种模式下,我设置焦点和/或编辑特定的单元格(“ Qta”)。
对我来说,这种情况可以关闭
最好的祝福