【发布时间】:2011-08-28 07:28:09
【问题描述】:
在 jqgrid 中,内联编辑是通过双击单元格来进行的。 光标位于第一个可编辑列。 第二次单击需要将光标置于被单击的单元格上。
如何将光标放在被点击开始内联编辑的单元格上? 在单元格编辑模式下,单击的单元格正确接收焦点。
function beginInlineEdit(rowID, afterSave) {
var grid2 = $("#grid");
if (rowID && rowID !== lastSelectedRow) {
var scrollPosition = $("#grid").closest(".ui-jqgrid-bdiv").scrollLeft();
cancelEditing($("#grid"));
lastSelectedRow = rowID;
setTimeout(function () {
grid2.closest(".ui-jqgrid-bdiv").scrollLeft(scrollPosition);
}, 100);
}
$("tr#" + lastSelectedRow + " div.ui-inline-edit, " + "tr#" + lastSelectedRow + " div.ui-inline-del").hide();
$("tr#" + lastSelectedRow + " div.ui-inline-save, " + "tr#" + lastSelectedRow + " div.ui-inline-cancel").show();
$("#grid").jqGrid('editRow', lastSelectedRow, true, null, null, null,
{ _dokdata: FormData },
afterSave,
errorfunc,
function () {
cancelEditing($("#grid"));
setFocusToGrid();
}
);
}
更新 1
我在 IE9 中尝试了 Oleg 演示。问题:
双击复选框列仍将焦点放在第一列。
我减小了浏览窗口宽度并向右滚动。单击最右边的列会导致奇怪的快速闪烁:网格滚动到最左边的位置,然后又回到右边的位置。
如何解决这些问题?
【问题讨论】:
标签: jqgrid