AG-Grid - 显示排序图标而不重新加载数据

Posted

技术标签:

【中文标题】AG-Grid - 显示排序图标而不重新加载数据【英文标题】:AG-Grid - Show sort icon without reloading data 【发布时间】:2021-11-08 19:20:42 【问题描述】:

我有一个 Angular 应用程序,当我加载页面时,尚未定义列。 这些列是在我检索数据(已经排序)时定义的。 因此,如果我在排序列上应用状态(在数据初始化后),数据会再次刷新,我想避免这种情况。

有没有办法在不使用 AG-Grid 刷新数据的情况下显示排序图标?

更明确地说,这是我的角度代码:

getRows(params: any): void 
  //retrieve my data
  this.myservice.getAll(params.currentPage, params.pageSize, params.sort).subscribe((data) => 
    //send my datas to AG-Grid
    params.successCallBack(data.results, data.totalItems);
    if (params.currentPage == 0 && this.firstLoad) 
      //my datas contain the columns definition
      this.initGrid(data.viewParams);
    
  );


initGrid(viewParams: ViewParamsModel): void 
    this.firstLoad = false;
    this.dataGrid.setColumnDefs(viewParams.columns);

    //I try with this but it reloads my data
    this.gridColumnApi.applyColumnState(
         state: [
         
            colId: 'name',
            sort: 'asc',
         ],
    );

【问题讨论】:

你能说明你尝试了什么以及发布一些代码的问题是什么。是否对每一列数据进行了排序,并且您希望显示默认为所有已排序列启用的排序图标。 @Mahi 我更新了我的帖子。我想显示一列的排序图标,但是当我设置列时,我不希望重新加载数据 【参考方案1】:

在做this.dataGrid.setColumnDefs(viewParams.columns)

添加sort: 'desc'/'asc'

columnDefs: [
    
      field: 'Column1',
      sort: 'desc',   // <====== add this
    ,

【讨论】:

这有帮助吗? 如果我这样做了,getRows 函数就会被召回。我想避免这种情况

以上是关于AG-Grid - 显示排序图标而不重新加载数据的主要内容,如果未能解决你的问题,请参考以下文章

从 MYSQL 表中更新值而不重新加载页面?

如何获取和设置 ag-grid 状态?

在对话框上显示数据而不重新加载页面

如何在量角器测试中测试重新排序 Ag-Grid 列?

重定向进入空白页面而不重定向到路由 Laravel 5.8

Ag-Grid:应用过滤器后如何保存和重新加载列