UI-Grid SortChanged未在可扩展网格上调用

时间:2019-07-15 14:49:05

标签: angular-ui-grid

UI-Grid:v3.2.1

在尝试对扩展网格中的列进行排序时,我注意到该列未调用我们的SortChanged回调。

我们将外部排序与可扩展网格结合使用。

我们通过以下调用设置排序

controller.gridOptions = {
  data: controller.myData,
  enableHorizontalScrollbar: 0,
  enableVerticalScrollbar: 0,
  useExternalSorting: true,
  expandableRowTemplate: urls.SubGridTemplate,
  enableGridMenu: true,
  rowHeight: gridRowHeight,
  minRowsToShow: minRowsToShow,
  enableFiltering: true,
  useExternalFiltering: true,
  enableSelectionModeToggle: true,
  columnDefs: templates.getGridColumnDefinitions(
    { advancedFilterChanged: advancedFilterChanged },
    controller.gridSettings
  )
};

然后

angularGridApi.core.on.sortChanged($scope, sortChanged);

然后我们使用以下方法设置可扩展网格

  angularGridApi.expandable.on.rowExpandedStateChanged(
    $scope,
    retrieveDetailRows
  );

1 个答案:

答案 0 :(得分:0)

可扩展网格似乎未使用$scope.core.on.sortChanged($scope, sortChanged)

由于这种警告,在我的情况下,默认排序算法默认为字符串。

“排序算法是根据列类型选择的。ui-grid会根据数据猜测类型,尽管如果在列之后异步加载数据,通常会确定所有列都是字符串。” Sorting Documentation

明确设置列类型为我解决了此问题。

{
  field: "myDataField",
  displayName: "My Column Header",
  type: "number",
  minWidth: 93,
  maxWidth: 120
}

如果需要更复杂的排序,可以在每列上设置自定义排序。