【问题标题】:AG-GRID Default Sort Model with Dynamic Column Defs具有动态列定义的 AG-GRID 默认排序模型
【发布时间】:2018-01-20 19:43:59
【问题描述】:

所以我有一个适用于企业行模型的网格设置。 列是非常动态的,因此在对服务器进行第一次行查询之前,列定义是未知的。这一切都很好,但是当请求成功后才设置列定义时,如何设置默认排序状态?

【问题讨论】:

    标签: ag-grid ag-grid-ng2


    【解决方案1】:

    使用列定义设置网格后,您可以在任何列上设置排序

    gridOptions.columnApi.getColumn(COLUMN_NAME).setSort("asc")
    

    【讨论】:

    • 抱歉,我可能不够清楚。我的服务器查询也响应列定义。所以基本上我进行查询以从服务器获取行数据,服务器响应行数据以及列。现在我有了这些列,所以我必须对相同的数据进行第二次请求,但要使用排序模型集。但我想要的是在一个甚至还不存在的列上设置一个排序:/所以我可以避免发出两个请求。
    • 我想我理解你的问题,但如果我错了,请纠正我!当它第一次调用 GetRows 时,IEnterpriseGetRowsParams 上没有 SortModel,因为您还不知道将返回的列,然后您使用 SortModel 集发出第二个请求,以便获得排序的数据?只是为了确定您如何定义要排序的列?是用户点击标题还是有程序化的方式找到它? (那是我脑海中缺少的链接......)
    • 对不起,我也应该解释一下。好的,所以当用户修改网格状态(即更改排序模型,更改列的宽度/顺序)时,我们会保存他们所做的事情,这样下次他们查看该表时,我们可以设置保存的列/排序模型状态。所以我们需要在第一次初始请求之前从保存的 GridState 中设置 sortmodel。
    • 对不起,我已经在度假了......据我记得,IEnterpriseGetRowsRequest 的 sortModel 属性是由 sortController 通过查看每一列的排序状态来构建的。显然对你来说这不起作用,因为你还没有得到数据......所以这是我试图找到一种解决方法,我不确定这是否有效......如果你从如果架构中没有任何列可能有效,SortController 会返回您的持久排序模型?
    • 正是我需要的。非常感谢!
    【解决方案2】:

    试试这个

    const sort = [
      {
        colId: "firstName",
        sort: "asc",
      },
      {
        colId: "lastName"
      },
    ];
    
    this.gridApi.setSortModel(sort);
    

    【讨论】:

      猜你喜欢
      • 2019-12-03
      • 2021-12-16
      • 1970-01-01
      • 2019-12-29
      • 2021-11-18
      • 2021-01-21
      • 2022-10-20
      • 1970-01-01
      • 2018-08-07
      相关资源
      最近更新 更多