【问题标题】:How to tell if column resize is done manually vs. automatically with onColumnResized()?如何判断列调整大小是手动完成还是使用 onColumnResized() 自动完成?
【发布时间】:2018-01-02 05:03:19
【问题描述】:

在 ag-grid v11.0 之前,sizeColumnsToFit() 使用未传递参数“finished=true”的事件触发。当用户手动调整列大小时,一旦调整大小拖动完成,事件将传递“finished=true”。这使我能够区分手动和自动调整列大小。

从 ag-grid v11.0 开始,sizeColumnsToFit() 现在会触发带有参数“finished=true”的事件。有没有办法区分这种自动调整大小和手动用户调整大小?

【问题讨论】:

    标签: javascript ag-grid


    【解决方案1】:

    ColumnResizedEvent 派生自 ColumnEvent 有一个“源”属性,当您双击分区时,该属性读取“sizeColumnsToFit”或“uiColumnDragged”甚至“autosizeColumns”。

    https://www.ag-grid.com/javascript-grid-events/#properties-and-hierarchy

    您应该能够使用源来确定事件是如何被触发的。

    myEventHandler(ev: ColumnResizedEvent) {
      if (ev.source === 'sizeColumnsToFit') {
        do.this;
      } else {
        do.that;
      }
    }
    

    【讨论】:

      【解决方案2】:

      自 10 年以来添加的代码

      colsToFireEventFor.forEach( (column: Column) => {
                  let event: ColumnResizedEvent = {
                      type: Events.EVENT_COLUMN_RESIZED,
                      column: column,
                      columns: [column],
                      finished: true,
                      api: this.gridApi,
                      columnApi: this.columnApi
                  };
                  this.eventService.dispatchEvent(event);
              });

      你可以尝试修改comment outfinished: true属性或者只使用10.0版本,这个函数看起来像这样:

       colsToFireEventFor.forEach( (column: Column) => {
                  let event = new ColumnChangeEvent(Events.EVENT_COLUMN_RESIZED).withColumn(column);
                  this.eventService.dispatchEvent(Events.EVENT_COLUMN_RESIZED, event);
              });

      【讨论】:

        【解决方案3】:

        手动拖动列时,源始终为“uiColumnDragged”

         if (event.source === 'uiColumnDragged') { 
                       // your logic here
         }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-11-19
          相关资源
          最近更新 更多