jqgrid 데모 (http://www.trirand.com/blog/jqgrid/jqgrid.html> 고급> 다중 선택)에서 페이징을 사용하는 경우 현재 페이지의 행만 표시됩니다.jqgrid multiselect는 페이징이 사용 가능한 경우 현재 페이지의 행만 선택합니다. 페이지 전체에서 행을 선택하는 방법은 무엇입니까?
여러 페이지에서 작동하도록하는 방법에 대한 정보. 또는 다른 대안 솔루션?
jqgrid 데모 (http://www.trirand.com/blog/jqgrid/jqgrid.html> 고급> 다중 선택)에서 페이징을 사용하는 경우 현재 페이지의 행만 표시됩니다.jqgrid multiselect는 페이징이 사용 가능한 경우 현재 페이지의 행만 선택합니다. 페이지 전체에서 행을 선택하는 방법은 무엇입니까?
여러 페이지에서 작동하도록하는 방법에 대한 정보. 또는 다른 대안 솔루션?
나는이 질문이 일종의 먼지라는 것을 알고 있지만, 최근이 기능에 대한 필요성이 있었고, 나는 그것을 훨씬 더 깨끗한 방법으로 생각했다.
각 확인란에 이벤트를 첨부하는 대신 jqGrid의 onSelectRow
및 onSelectAll
이벤트를 사용하지 않는 이유는 무엇입니까? 행이 선택되면 선택된 행의 목록에이 행 (ID 기반)이 포함되어 있는지 확인합니다. 목록에 없으면 선택되고 더 이상 선택되지 않은 경우 제거하십시오. 모든 행이 선택되면 행을 반복합니다.
var $grid = jQuery("#myGrid");
var updateIdsOfSelectedRows = function (id, isSelected) {
var contains = idsOfSelectedRows.contains(id);
if (!isSelected && contains) {
for(var i=0; i<idsOfSelectedRows.length; i++) {
if(idsOfSelectedRows[i] == id) {
idsOfSelectedRows.splice(i, 1);
break;
}
}
}
else if (!contains) {
idsOfSelectedRows.push(id);
}
};
$grid.jqGrid({
....
onSelectRow: function(rowid, status){
updateIdsOfSelectedRows(rowid, status);
},
onSelectAll: function (aRowids, status) {
var i, count, id;
for (i = 0, count = aRowids.length; i < count; i++) {
id = aRowids[i];
updateIdsOfSelectedRows(id, status);
}
},
....
)};
다른 사람들이 솔루션을 찾는 데 도움이되기를 바랍니다.
한 페이지에서 일부 행을 선택한 다음 다른 페이지로 이동하고 더 많은 행을 선택하고 해당 선택 항목을 모두 유지하려고한다고 가정합니다.
각 확인란에서 선택 이벤트를 처리해야합니다. 이벤트 처리기를 each $("#cb_my_grid")
에 연결하고 선택한 항목의 배열을 유지합니다. 그런 다음 데이터가 필요할 때 (아마 페이지가 제출 될 때) 배열의 값을 제출할 수 있습니다.