使用Set rownumbers to false dynamically in jqgrid的答案我创建了行号切换按钮。 最初不显示行号。忽略按钮单击,不添加行号列。 如何强制按钮添加行号列? 或者是否可以向列选择器添加选项以切换行号列?这样会更好,不需要额外的按钮。
var rownumbers= isColState ? myColumnsState.rownumbers : false;
$("#grid_toppager_left table.navtable tbody tr").append(
'<td class="ui-pg-button ui-corner-all">' +
'<div class="ui-pg-div my-nav-checkbox">' +
'<input tabindex="-1" type="checkbox" id="RowNumbers" ' + (rownumbers ? 'checked ' : '')+'/>' +
'<label title="Toggle row numbers"' +
' for="RowNumbers">Toggle row numbers</label></div></td>'
);
$("#RowNumbers").button({
text: false,
icons: {primary: "ui-icon-grip-dotted-vertical"}
}).click(function () {
rownumbers = !rownumbers;
if (rownumbers ) {
$grid.jqGrid('showCol', 'rn');
} else {
$grid.jqGrid('hideCol', 'rn');
}
saveWindowState();
});
更新
jqgrid还包含multiselect和_actions列。在loadcomplete中,使用
将新行添加到网格末尾var newRowData = { Dokumnr: 123,
Reanr: $grid[0].rows.length + 1
},
newRowId = '_empty' + $.jgrid.randId();
$grid.jqGrid('addRowData', newRowId, newRowData);
如果在加载后第一次打开行号,则添加行中的多选列复选框将显示在rown numbers列中:
如何解决这个问题?
答案 0 :(得分:1)
您必须以任何方式包含rownumbers: true
来创建行号。如果您希望最初未显示行号,则应在创建网格后调用$grid.jqGrid('hideCol', 'rn');
。您还可以rownumbers
将$grid.jqGrid('setGridParam', {rownumbers: false});
设置为false,但我不认为这是真的需要。
之后,您可以根据需要使用最初的按钮$("#RowNumbers")
。您可以考虑将rownumbers
选项设置为true
或false
以及showCol
和hideCol
并使用rownumbers
选项代替您{ {1}}变量。
更新:rownumbers
的当前代码只是测试jqGrid的addRowData
选项是rownumbers
:
true
取决于它计算数据位置的值:
var ni = t.p.rownumbers===true ? 1 :0;
gi = t.p.multiselect ===true ? 1 :0;
si = t.p.subGrid===true ? 1 :0;
所以我应该纠正我的答案。您不应更改prp = t.formatCol(ni,1,'', null, rowid, true);
选项的值。即使相应的列将被隐藏,它也应始终保持rownumbers
。