【发布时间】:2012-03-27 10:39:34
【问题描述】:
我正在使用
getGridParam('selarrrow');
要获取被选中的行,该方法根据他们的选择返回我选择的行 ID,但我想要根据他们的索引的 id。我必须编写一个方法来对 id 进行排序还是有一个内置方法,它按索引的顺序返回选定的行 ID。
提前致谢
【问题讨论】:
标签: jqgrid
我正在使用
getGridParam('selarrrow');
要获取被选中的行,该方法根据他们的选择返回我选择的行 ID,但我想要根据他们的索引的 id。我必须编写一个方法来对 id 进行排序还是有一个内置方法,它按索引的顺序返回选定的行 ID。
提前致谢
【问题讨论】:
标签: jqgrid
如果您指的是网格中行的索引,那么您必须使用 $("#gridId").jqGrid("getGridParam", "selarrrow") 返回的数组或 id。您可以将Array 的sort() 方法与您的自定义排序功能一起使用。您可以使用 id 是 <tr> 元素的 id 的事实。所以<tr>的DOM元素已经原生实现了rowIndex属性,你可以通过$("#"+rowid)[0].rowIndex获取。
代码的简化形式如下
var selRowIds = $("#gridId").jqGrid("getGridParam", "selarrrow");
selRowIds.sort(function (id1, id2) {
// one can use document.getElementById alternatively
return $("#" + id1)[0].rowIndex - $("#" + id2)[0].rowIndex;
});
或者你可以使用namedItem 方法来代替
var $grid = $("#gridId"),
selRowIds = $grid.jqGrid("getGridParam", "selarrrow"),
rows = $grid[0].rows;
selRowIds.sort(function (id1, id2) {
return rows.namedItem(id1).rowIndex - rows.namedItem(id2).rowIndex;
});
您可能应该在代码中包含更多验证,以确保可以找到具有 id 的项目并且它具有 rowIndex 属性。
【讨论】: