jQGrid事件viewGridRow的顶部和左侧选项的问题,无法解析光标位置

Problems with top and left option in jQGrid for event viewGridRow, cant parse cursor location

本文关键字:位置 光标 问题 选项 viewGridRow 事件 顶部 jQGrid      更新时间:2023-09-26

我的jQGrid有问题。我试图使它,当viewGridRow事件触发时,设置弹出窗口的位置为光标的位置。我在网格中有一个很长的列表,默认情况下将窗口放在网格的顶部。

有通过jQuery检索光标位置的函数:

var CursorX;
var CursorY;
$(document).bind('dblclick', function (e) { CursorX = e.pageX; })
$(document).bind('dblclick', function (e) { CursorY = e.pageY; })

和viewGridRow的配置如下:

ondblClickRow: function (rowid) {
    jQuery("#grid").jqGrid('viewGridRow', rowid, {
        top: CursorY,
        left: CursorX,
        modal: true,
        width: 1500,
        caption: "View Item",
        recreateForm: true,
        beforeShowForm: function (form) {
            jQuery("#grid").
            setColProp('last_instruct', { formatter: "unformat" });
        },
    });
},

问题是它似乎不工作。

有人知道我做错了什么吗?

刚刚在我自己的一个网格上进行了测试,正如所写的那样,问题是jQgrid在更新变量之前正在处理ondblClick事件。

取消绑定:

var CursorX;
var CursorY;
$(document).bind('dblclick', function (e) { CursorX = e.pageX; })
$(document).bind('dblclick', function (e) { CursorY = e.pageY; })
然后移动到
    top: e.pageY,
    left: e.pageX,

你还需要将你的ondblClickRow更新为

ondblClickRow: function (rowid, iRow, iCol, e) {

Edit(确保jQgrid每次都重新创建一个新的视图/编辑等窗口。Ex(每次重新创建一个新的编辑表单)

    $.extend($.jgrid.edit, { closeAfterEdit: true, recreateForm: true });

作为一个边注,您可能想要考虑当用户双击一个区域,产生一个表单,将在正常的查看区域之外会发生什么。