0
我想在jqGrid中具備以下能力。 當用戶點擊網格中的複選框時,會選擇一行。 當用戶隨後點擊「控制鍵」並選擇複選框時,用戶可以隨後選擇更多的行數。然後當用戶點擊複選框並且如果當前行被選中,則選擇當前行。這可能與jqGrid? 但是,單擊單元格時不會發生任何情況。只有複選框可以提供事件。jqGrid多行選擇高級
我想在jqGrid中具備以下能力。 當用戶點擊網格中的複選框時,會選擇一行。 當用戶隨後點擊「控制鍵」並選擇複選框時,用戶可以隨後選擇更多的行數。然後當用戶點擊複選框並且如果當前行被選中,則選擇當前行。這可能與jqGrid? 但是,單擊單元格時不會發生任何情況。只有複選框可以提供事件。jqGrid多行選擇高級
是的,應該是可以的。看看checkbox selection的正常範例 - 它讓你成爲那裏的一部分。儘管如此,它並沒有像你期望的那樣真正處理SHIFT選擇的東西。
我做了一些搜索,發現這個代碼在jqGrid的支持網站:
function multiSelectHandler(sid, e) {
var grid = $(e.target).closest("table.ui-jqgrid-btable");
var ts = grid[0], td = e.target;
var scb = $(td).hasClass("cbox");
if ((td.tagName == 'INPUT' && !scb) || td.tagName == 'A') {
return true;
}
var sel = grid.getGridParam('selarrrow');
var selected = $.inArray(sid, sel) >= 0;
if (e.ctrlKey || (scb && (selected || !e.shiftKey))) {
grid.setSelection(sid,true);
} else {
if (e.shiftKey) {
var six = grid.getInd(sid);
var min = six, max = six;
$.each(sel, function() {
var ix = grid.getInd(this);
if (ix < min) min = ix;
if (ix > max) max = ix;
});
while (min <= max) {
var row = ts.rows[min++];
var rid = row.id;
if (rid != sid && $.inArray(rid, sel)<0) {
grid.setSelection(row.id, false);
}
}
} else if (!selected) {
grid.resetSelection();
}
if (!selected) {
grid.setSelection(sid,true);
} else {
var osr = grid.getGridParam('onSelectRow');
if ($.isFunction(osr)) {
osr(sid, true);
}
}
}
}
要使用它,你應該能夠在beforeSelectRow處理程序中設置此功能。防爆。是這樣的:
$("#gridid").jqGrid({
// Rest of code to configure grid
beforeSelectRow: multiSelectHandler,
// Other handlers/configuration
});
@Oleg一個問題,你可能已經遇到了... HTTP://stackoverflow.com/questions/10552867/jqgrid-advanced-search-dialog-column-which-has-dropdown-選擇 – chugh97 2012-05-11 14:02:03