AgGridReact 停止编辑并恢复旧值
AgGridReact stop editing and restore old value
我有一个带有 AgGridReact
的 React 组件,它有一个可编辑的列。我想在 onCellValueChanged
事件中检查新值是否满足某些条件,如果不满足则停止并恢复旧值。
我读到有一个 api stopEditing
:
https://www.ag-grid.com/documentation/javascript/cell-editing/#editing-api
这里说:
"stopEditing(cancel): 如果网格正在编辑,则停止编辑。传递 cancel=true 将保留单元格的原始值,传递 cancel=false 将从单元格编辑器中获取最新值。"
所以我试过使用它。只是为了测试一下,我这样做了:
const onGridReady = params =>
{
gridApi.current = params.api;
}
const onCellValueChanged = async (event) =>
{
gridApi.current.stopEditing(true);
return;
}
我希望每次我尝试编辑时,无论如何,只要我点击回车完成编辑,旧值就会恢复,但它只是保留新值。事件本身已正确设置并且正在被调用。
我在这里做错了什么?如果这不是恢复以前值的方法,那是什么?
stopEditing
在 gridApi
上调用。通过在 onCellValueChanged
中调用 stopEditing
,为时已晚,值已经更改。
您可以执行以下操作:
为您的专栏使用 valueSetter
。这样,您可以只接受某些值并拒绝所有其他值。例如,这个 valueSetter
只会在新输入的值为“accept”时更新值:
function myValuSetter(params) {
if (params.newValue != "accept") {
return false;
}
params.data.make = params.newValue
return true;
}
Demo.
我有一个带有 AgGridReact
的 React 组件,它有一个可编辑的列。我想在 onCellValueChanged
事件中检查新值是否满足某些条件,如果不满足则停止并恢复旧值。
我读到有一个 api stopEditing
:
https://www.ag-grid.com/documentation/javascript/cell-editing/#editing-api
这里说:
"stopEditing(cancel): 如果网格正在编辑,则停止编辑。传递 cancel=true 将保留单元格的原始值,传递 cancel=false 将从单元格编辑器中获取最新值。"
所以我试过使用它。只是为了测试一下,我这样做了:
const onGridReady = params =>
{
gridApi.current = params.api;
}
const onCellValueChanged = async (event) =>
{
gridApi.current.stopEditing(true);
return;
}
我希望每次我尝试编辑时,无论如何,只要我点击回车完成编辑,旧值就会恢复,但它只是保留新值。事件本身已正确设置并且正在被调用。
我在这里做错了什么?如果这不是恢复以前值的方法,那是什么?
stopEditing
在 gridApi
上调用。通过在 onCellValueChanged
中调用 stopEditing
,为时已晚,值已经更改。
您可以执行以下操作:
为您的专栏使用 valueSetter
。这样,您可以只接受某些值并拒绝所有其他值。例如,这个 valueSetter
只会在新输入的值为“accept”时更新值:
function myValuSetter(params) {
if (params.newValue != "accept") {
return false;
}
params.data.make = params.newValue
return true;
}
Demo.