我有以下用例可以通过'Select All'按钮在ui网格中实现(分页已实现):
选择代码: gridApi.selection.selectRow(gridOptions.data [rowIndex]);
获取所选代码: gridApi.selection.getSelectedRows();
到这里为止一切正常。
单击“全选”以选择所有渲染的行,使用以下代码:
gridApi.selection.selectRowByVisibleIndex(rowIndex); // rowIndex是从0到49的循环的索引。
但是当我使用步骤3中定义的逻辑来获取数据时,它以未排序的顺序给出。因此,总体而言,我的用例是选择该列之后的行,并按与在UI上显示的顺序相同的顺序进行提取。
下面是相同的伪代码:
vm.selectAll = function selectAll() { var rowIndex; vm.gridApi.grid.modifyRows(vm.gridOptions.data); for (rowIndex = 0; rowIndex < MAX_SELECTION_ALLOWED; rowIndex++) { if(vm.isUISortingApplied){ //vm.gridApi.selection.selectRow(vm.gridApi.core.getVisibleRows()[rowIndex].entity); vm.gridApi.selection.selectRowByVisibleIndex(rowIndex); }else{ vm.gridApi.selection.selectRow(vm.gridOptions.data[rowIndex]); } } };
所以,我应该在一行中询问ui-grid提供的用于选择的功能,然后在应用排序后取回所选择的行是什么?
谢谢!!
我有以下用例可通过'Select All'按钮在ui网格中实现(分页已实现):加载第一页的初始50条记录,其中包括名称,id,年龄列。单击“选择...
通过使用gridApi.core.getVisibleRows()函数解决了该问题,该函数在排序后以正确的顺序给出行。我建议通过选择在实现排序的地方使用此功能来选择行。谢谢!