【问题标题】:Ag-grid Angular How to get click events on Header?Ag-grid Angular 如何在 Header 上获取点击事件?
【发布时间】:2018-10-13 16:21:52
【问题描述】:

有什么方法可以在 Angular 中获取关于 ag-grid 标题的点击事件的通知?

<ag-grid-angular>-组件为单击单元格提供了多个事件(例如 cellDoubleClicked)。这些不会因标题点击而触发,我无法找到任何特定于标题点击的事件。

This question 过去已经被其他人问过并且没有回答,所以我不认为,有任何内置方式。

我为什么需要这个?

我正在使用另一个库为应用程序提供上下文菜单,但我想区分标题和常规单元格的不同上下文菜单。所以只听默认的角度点击事件(在整个网格组件上)没有帮助,因为我需要点击的列/单元格。

作为参考,我目前使用的是 ag-grid 15.0.0,但我在当前文档中也没有找到任何内容。

【问题讨论】:

    标签: angular ag-grid ag-grid-ng2


    【解决方案1】:

    我认为如果您定义标题组件,这可能是可能的(请参阅:Header Components)。在您的标头组件模板中,您可以创建div 元素(或任何其他容器元素)并定义(click) 事件处理程序。这对我有用:

    <div (click)='onHeaderClick($event)'>
      <p>Name</p>
    </div>
    

    (当然您可能希望将参数中的标题标题传递给agInit() 方法,因为您不想为每个标题创建单独的标题组件!)

    【讨论】:

    • 感谢您的回答。经过一番调查,似乎在实现自定义 Header 组件时,没有真正的后备行为。我必须自己实现和维护排序和样式,我不喜欢这样做。
    • @KeTr 我同意这并不理想,但它看起来并不像您想象的那样令人生畏。看看这个 Plunker ...header-component 似乎实现了您需要的功能:embed.plnkr.co/plunk/1rHK9l
    【解决方案2】:

    您基本上可以在单击默认标题时收听 ag-grid 提供的“sortChanged”事件。

    【讨论】:

    • 是的,而且在sortChanged时,事件并没有告诉你是哪一列,所以调用getSortModel()来获取。
    • 并注意getSortModel()默认每3次点击会有一个空列,所以设置列sortingOrder排除'no sort'
    猜你喜欢
    • 2020-01-08
    • 2018-07-23
    • 2019-10-13
    • 2021-11-12
    • 2020-07-11
    • 2021-02-10
    • 2021-08-03
    • 2023-03-19
    • 2020-09-08
    相关资源
    最近更新 更多