2012-03-27 143 views
1

我使用如何根据jqgrid中的索引获取选定的行ID?

getGridParam('selarrrow'); 

获得所选择的行,该方法根据自己的选择返回我选择的行ID,但是我根据自己的index.Do我要写想要的ID一种排序ID的方法或者是否有一种内置方法,可以按照其索引的顺序将选定的行ID返回给我。

在此先感谢

回答

1

如果你指的是排在网格中的索引,那么你必须求助于由$("#gridId").jqGrid("getGridParam", "selarrrow")返回的数组或ID。您可以使用sort()方法Array与您的自定义排序功能。你可以使用这个事实,即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属性。

+0

:谢谢,它的工作。我用getInd(rowId)获取行的索引。 – pavi 2012-03-27 12:05:03

+0

@pavi:不客气! [getInd](https://github.com/tonytomov/jqGrid/blob/v4.3.1/js/grid.base.js#L3322-3331)在内部也是如此。所以你可以使用更适合你的API。 – Oleg 2012-03-27 12:13:33