По сути, вы пропустили полный поток того, как работает ag-grid с dataSource
.
Так что в соответствии с официальным документом , IDatasource
выглядит вот так:
interface IDatasource {
/** If you know up front how many rows are in the dataset, set it here. Otherwise leave blank.*/
rowCount?: number;
/** Callback the grid calls that you implement to fetch rows from the server. See below for params.*/
getRows(params: IGetRowsParams): void;
destroy?(): void;
}
Давайте углубимся в интерфейс getRows
и IGetRowsParams
(необходима только его часть)
/** Params for the above IDatasource.getRows() */
export interface IGetRowsParams {
....
successCallback(rowsThisBlock: any[], lastRow?: number): void;
...
}
Итак, как вы можете видеть, successCallback
доступно только через dataSource
и точно getRows
, что означает, что вам не нужно получать прямой доступ через gridAPI
.Он должен быть определен один раз (как dataSource
), а затем ag-grid
будет выполнять getRows
только тогда, когда это требуется.
Возможное решение (не рекомендуется использовать, сокращение dataSource
в основном требуетсядля бесконечной прокрутки и автозаполнения новых данных)
Вы можете привязать params.successCallback
к своему собственному свойству и выполнять его всякий раз, когда захотите
, вот простой взломпример (отметьте successCallbackBinding
)