0
作爲我的previous question的擴展,我想默認自動選擇行。在this response中,他們使用loadComplete在服務器請求後選擇行。但是,我從服務器請求一次,然後使用本地數據。我需要在每次組織列時重新選擇行,搜索網格......基本上每次數據視圖都會發生變化。jqgrid默認根據列值選擇行
我選擇基於列(book_id)而不是顯式rowid的行,那麼回答here是合適的嗎?或者jqGrid有一個明確的方法(例如onUpdateGrid
)來幫助實現這個目標?現在看來,我只需要在onPaging
和onSortCol
下複製代碼。
的dataInit方法爲fav_books列:
initBookEdit: function(elem){
//populate reference table
populateBookRefs($(elem).val());
//display dialog which contains reference table
//pressing OK button on dialog saves all id's as a
//comma delimited list in the main table
$('#bookRefPopup').dialog({
buttons: {
"OK": function(){
var selectedRows = bookRefTable.jqGrid('getGridParam', 'selarrrow');
var selectedIds = new Array();
for(var i=0; i<selectedRows.length; i++){
var changedRow = bookRefTable.getRowData(selectedRows[i]);
var book_id = changedRow['book_id'];
selectedIds.push(book_id);
}
var editedRow = $('#mainTable').jqGrid('getGridParam', 'selrow');
$('#mainTable').jqGrid('setCell',editedRow, 'docs_ref', selectedIds, null, null, true);
$('#mainTable').trigger('reloadGrid');
$(this).dialog("close");
},
Cancel: function() {
$(this).dialog("close");
}
}//close buttons
});//close dialog
}
和參考表的初始化:
function populateBookRefs(ids){
values = ids.split(',');
grid.jqGrid({
...
loadComplete: function(){ //event executed after server request
for(var i=0; i<values.length; i++){
grid.jqGrid('setSelection',values[i],true);
}
}
...
});
}
像你這樣的所有行的枚舉(關於'getDataIDs')在很多行的情況下工作會很慢。看看[另一個](http://stackoverflow.com/questions/5664587/jqgrid-load-large-data-set-without-pagination/5690583#5690583)。這裏顯示了更有效的枚舉方法。你應該改變'ui-state-disabled'類的設置來調用你需要的'setSelection''。 – Oleg
感謝您抽出時間來解決潛在的問題。非常感激! – Andrea
不客氣! – Oleg