如何在网格中间的jqgrid中添加新行

时间:2011-12-15 09:41:17

标签: jqgrid

jqGrid 4.3允许使用内联编辑添加新行。

http://trirand.com/blog/jqgrid/jqgrid.html中的内联导航器演示 显示添加命令网格后滚动到顶部,添加的行显示在网格顶部。 这很令人困惑。

如何强制添加的行显示在当前行之前?

我在http://www.trirand.com/blog/?page_id=393/feature-request/force-added-row-in-inline-edit-to-appear-before-current-row/

中将其发布为功能请求

1 个答案:

答案 0 :(得分:3)

the answer我建议扩展addRowData方法以支持新的'afterSelected'和'beforeSelected'值(除了现有的'first','last','before'和'after') position参数的。我展示了可以覆盖(子类)原始addRowData方法来添加支持,而无需编写addRowData的完整代码。

在相应的demo中,我演示了如何在使用form editing的情况下使用该功能。

同样,我们也可以在inlineNav方法中解决问题。 The new demo证明了这一点。

相应的代码实际上是答案中代码的副本。

var oldAddRowData = $.fn.jqGrid.addRowData;

$.jgrid.extend({
    addRowData: function (rowid, rdata, pos, src) {
        if (pos === 'afterSelected' || pos === 'beforeSelected') {
            if (typeof src === 'undefined' && this[0].p.selrow !== null) {
                src = this[0].p.selrow;
                pos = (pos === "afterSelected") ? 'after' : 'before';
            } else {
                pos = (pos === "afterSelected") ? 'last' : 'first';
            }
        }
        return oldAddRowData.call(this, rowid, rdata, pos, src);
    }
});

...
$("#list").jqGrid('inlineNav', '#pager', {addParams: {position: "afterSelected"}});

我可能应该向trirand发布相应的建议,修改原有的addRowData方法并使用上述功能。