【发布时间】:2011-11-29 12:00:11
【问题描述】:
我有一个带有multiselect true 的 jqgrid,我想设置一些行。(我知道行 ID。)我该怎么做?
我的意思是与
相反$("#myTable").jqGrid('getGridParam', 'selarrrow');
就像:
$("#myTable").jqGrid('setGridParam', 'selarrrow', rowArray);
【问题讨论】:
标签: jqgrid
我有一个带有multiselect true 的 jqgrid,我想设置一些行。(我知道行 ID。)我该怎么做?
我的意思是与
相反$("#myTable").jqGrid('getGridParam', 'selarrrow');
就像:
$("#myTable").jqGrid('setGridParam', 'selarrrow', rowArray);
【问题讨论】:
标签: jqgrid
您必须遍历rowArray 数组并为rowArray 中的每个rowid 调用setSelection 方法:
var i, count, $grid = $("#myTable");
for (i = 0, count = rowArray.length; i < count; i += 1) {
$grid.jqGrid('setSelection', rowArray[i], false);
}
【讨论】:
$.each(rowsToSelect, function(_, rowId) {
$grid.setSelection(rowId, false);
});
没有太大区别。只是看起来更整洁:)
【讨论】:
(令人惊讶的是,即使是现在,在 2014 年,jqGrid 在分页时也不会保留复选框..)
这是我在移动到新页面后需要使用 jqGrid 4.4.5 来设置复选框的代码:
var idsOfSelectedRows = []; // list of RowIDs for rows which have been ticked
$("#tblContracts").jqGrid({
...
colModel: [
{ name: 'AddContract', width: 50, align: "center", editable: true, edittype: 'checkbox', editoptions: { value: "True:False" }, formatter: "checkbox", formatoptions: { disabled: false } },
{ name: "ContractName", search: true, width: 80, align: "center" }
],
loadComplete: function () {
for (i = 0; i < idsOfSelectedRows.length; i++) {
$(this).setCell(idsOfSelectedRows[i], 'AddContract', true);
}
},
在开发过程中,我在“for”循环中放置了一个“警报”。我发现使用“setSelection”只需遍历我的 RowID 列表,选择行(因此它会突出显示),然后转到下一个,而是选择该行。
它从来没有勾选任何复选框。
请注意,我的“setCell”函数包括我有一个复选框的 jqGrid 列的 name。
如果您剪切'n'粘贴此代码,请确保更改此行以反映您的 jqGrid 复选框列的名称。
【讨论】: