0

有没有办法将对话框消息“请选择行”定位在所选网格的左上角?

我只想要警报警告中的相同行为,就像编辑和删除表单一样。

这个主题解决方案对我不起作用.. AlertMod 警告消息的 JQGrid 位置

我在同一页面中有 3 个网格,如果您单击最后一个网格的一行,警告消息会出现在页面顶部,并且用户无法察觉...

谁能帮我?

提前致谢

解决方案:

var orgViewModal = $.jgrid.viewModal;

$.extend($.jgrid, {
    viewModal: function (selector, o) {
        if (selector === '#alertmod') {
            var $gbox = $(o.gbox), $selector = $(selector);
            var of = $gbox.offset(), w = $gbox.width(), h = $gbox.height(); 
            var w1 = $selector.width(), h1 = $selector.height();
            $selector.css({
                'top': of.top + ((h-h1)/2),
                'left': of.left + ((w-w1)/2)
            });
        }
        orgViewModal.call(this, selector, o);
    }
});

对于其他感兴趣的人,这个解决方案对我有用。仅更改警报框的位置并保持其他所有内容相同。

4

3 回答 3

0

看看这个答案

http://www.ok-soft-gmbh.com/jqGrid/CenterEditForm.htm

你需要改变你的 beforeShowForm 事件

或者您可以在 afterShowform 事件上实现此功能

function centerForm ($form) {
                    $form.closest('div.ui-jqdialog').position({
                        my: "center",
                        of: $('#grid').closest('div.ui-jqgrid')
                    });
                    }

于 2012-07-30T10:20:22.603 回答
0

如果我理解正确您的问题,您可以使用navGridalerttopalertleft选项。参数可以包含在选项中。答案描述了另一个未记录的选项。parametersnavGridnavGrid

于 2012-07-30T10:33:32.607 回答
0

正如我在评论中写的那样,我有一张长桌子,我需要警报窗口始终位于视口的中心。所以我需要动态定位警报窗口。我需要在用户向下滚动页面并单击“编辑”或“删除”后设置位置。

据我了解,导航没有警报模式窗口的“beforeShowForm”或“beforeShowSearch”等事件。我也无法在寻呼机上点击。

Oleg 和 Paulo Pinto 提供的解决方案对我不起作用。我不知道为什么。我什至不明白它是如何工作的:)

所以我找到了自己的直...不是很好的方式。

loadComplete: function(){
    $(window).scroll(function() {
        $('#alert_window_id').center();
    });
}

其中“中心()”是

jQuery.fn.center = function () {
    this.css("position","absolute");
    this.css("top", ( $(window).height() - this.height() ) / 2+$(window).scrollTop() + "px");
    this.css("left", ( $(window).width() - this.width() ) / 2+$(window).scrollLeft() + "px");
    return this;
}

在 loadComplete 之后,警报 div 似乎已经存在,并且网格具有其完整高度,因此窗口滚动也存在。因为我没有单击“编辑”按钮或显示警报对话框的事件 - 我在每次滚动事件后重新定位警报对话框。

于 2013-10-10T17:25:27.823 回答