【发布时间】:2012-01-21 00:35:47
【问题描述】:
jqGrid 4.3 允许使用内联编辑添加新行。
http://trirand.com/blog/jqgrid/jqgrid.html 中的内联导航器演示 显示添加命令网格后滚动到顶部并且添加的行出现在网格顶部。 这令人困惑。
如何强制添加的行出现在当前行之前?
【问题讨论】:
标签: jqgrid
jqGrid 4.3 允许使用内联编辑添加新行。
http://trirand.com/blog/jqgrid/jqgrid.html 中的内联导航器演示 显示添加命令网格后滚动到顶部并且添加的行出现在网格顶部。 这令人困惑。
如何强制添加的行出现在当前行之前?
【问题讨论】:
标签: jqgrid
在the answer 中,我建议扩展addRowData 方法以支持@987654331 的新'afterSelected' 和'beforeSelected' 值(除了现有的'first'、'last'、'before' 和'after') @ 范围。我展示了一个可以覆盖(子类)原始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 方法。
【讨论】:
'ui-state-disabled' 类。我认为您的问题与问题/答案中讨论的问题无关。这是answer 的主题,我将在其中回答您。
addRowData 的“afterSelected”选项。因此,如果使用免费的 jqGrid,则不需要“子类化”addRowData。