的jqGrid的數據在jqGrid的如何返回選定行
var gridData=$("#SearchResults").jqGrid('getRowData')
上面一行給你的所有行的網格數據,有沒有辦法在那裏我能得到的只有所選行的網格數據。
selRowId = myGrid.jqGrid ('getGridParam', 'selrow'),
以上給出了選擇的行標識,但我希望所有的選定行的數據以及它的GridData的回報,但我只需要的那些選擇一個
的jqGrid的數據在jqGrid的如何返回選定行
var gridData=$("#SearchResults").jqGrid('getRowData')
上面一行給你的所有行的網格數據,有沒有辦法在那裏我能得到的只有所選行的網格數據。
selRowId = myGrid.jqGrid ('getGridParam', 'selrow'),
以上給出了選擇的行標識,但我希望所有的選定行的數據以及它的GridData的回報,但我只需要的那些選擇一個
這很簡單。 getRowData
方法的第二個可選選項參數是要求數據的行的rowid(請參見the documentation)。所以,你可以使用
var selRowId = myGrid.jqGrid("getGridParam", "selrow");
獲得最後選定的rowid,然後再由
var rowData = myGrid.jqGrid("getRowData", selRowId);
獲得該行的數據。如果您使用datatype: "local"
或一些偏遠datatype
("xml"
或"json"
),但與loadonce: true
那麼jqGrid將數據內部保存在data
數組中。在這種情況下getLocalRow
方法的用法是作爲getRowData
使用更有效:
var rowData = myGrid.jqGrid("getLocalRow", selRowId);
如果使用multiselect: true
選項,然後jqGrid的支持selarrrow
陣列選定的rowid的,你可以在迴路中獲得所需的所有數據:
var i, selRowIds = myGrid.jqGrid("getGridParam", "selarrrow"), n, rowData;
for (i = 0, n = selRowIds.length; i < n; i++) {
rowData = myGrid.jqGrid("getLocalRow", selRowIds[i]);
// one can uses the data here
}
如果你正試圖從電網事件,例如onSelectRow
你可以忽略奧列格的答案的第一部分裏抓住你的數據,並得到類似以下數據:
myGrid.jqGrid({
... // Grid create options ->
datatype: 'local',
data: gridData,
// <--
onSelectRow: function(id){
data = $(this).jqGrid("getLocalRow", id);
// if you need actual content of the cells
// data = myGrid.jqGrid("getRowData", id);
}
});
顯然這隻適用於單行,但如果意圖是行,我相信奧列格的答案是唯一的選擇。
注:但它是在4.5.4版修復oleg's free jqgrid 4.15.2
這並不在4.5.4版本及以下的工作,這不會返回正確的行數據,如果網格不同於分類原始數據。也'id'是選定的行,id在'onSelectRow:function(id,status,e){...}' – AaA 2017-11-14 07:35:06
@AaA:我相信你錯了。我想你誤解了什麼是rowid。許多新手將行索引與rowid混合,並以錯誤的方式填充網格(不在輸入數據中指定id)。我建議你用演示你的問題的演示發佈新的問題。此外,我建議你將復古版本4.5.4(這是4歲以上)升級到[免費jqGrid](https://github.com/free-jqgrid/jqGrid)4.15.2。 – Oleg 2017-11-14 07:47:47
謝謝奧列格,我知道這一點。我想我誤解了它。我在您的解決方案中引用了'selRowId',它等於'onSelectRow'事件中的'id'。在版本4.5.4中它返回不正確的行,但它在4.15.2中正常工作。 – AaA 2017-11-14 08:42:26