gpt4 book ai didi

jqgrid - 如何将焦点设置到单击以在 jqgrid 中开始内联编辑的单元格

转载 作者:行者123 更新时间:2023-12-04 06:16:08 25 4
gpt4 key购买 nike

在 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 演示。问题:
  • 双击复选框列仍会将焦点放在第一列。
  • 我减少了浏览窗口的宽度并向右滚动。单击最右边的列会导致奇怪的快速闪烁:网格滚动到最左边的位置,然后回到右边的位置。

  • 如何解决这些问题?

    最佳答案

    the demo来自 the answer .演示完全符合您的需要,或者您可以根据自己的目的修改演示。

    更新 : 1) 您是否尝试过我的原始演示或尝试在您的代码中使用所描述的想法?在我的环境中(在不同的计算机上)the demo将焦点放在单击的单元格中。它在 IE9( native 甚至兼容模式)、IE8、Google Chrome 13、Safari 5.1、Opera 11.50、Firefox 3.6.20 和 Nightly 9.0a1(Firefox 的下一个版本)中都能正常工作。

    2)首先在第一个编辑位置滚动网格然后到单击的单元格是正确的行为。默认情况下,jqGrid 内联编辑将焦点设置在第一个编辑单元格上,然后在 oneditfunc 内部。 editRow的回调函数,我们将焦点更改为单击的单元格。

    关于jqgrid - 如何将焦点设置到单击以在 jqgrid 中开始内联编辑的单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7219598/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com