Ag grid 对于ag网格,是否可以访问旧数据?
我正在创建一些自定义内联编辑功能,并尝试在用户对特定列进行编辑后单击“取消”时重置数据我正在为此使用Ag grid 对于ag网格,是否可以访问旧数据?,ag-grid,ag-grid-react,Ag Grid,Ag Grid React,我正在创建一些自定义内联编辑功能,并尝试在用户对特定列进行编辑后单击“取消”时重置数据我正在为此使用CellRenders,因此我无法访问cellEditor所需的编辑参数。 当前,我所做的是在单击特定行时,将该行的数据保存为React状态originalRowInfo: const moreInfoClick=(事件、切换moreinfo、行数据)=>{ event.persist(); setMoreInfoLocation({x:event.clientX,y:event.clientY}
CellRenders
,因此我无法访问cellEditor
所需的编辑参数。
当前,我所做的是在单击特定行时,将该行的数据保存为React状态originalRowInfo
:
const moreInfoClick=(事件、切换moreinfo、行数据)=>{
event.persist();
setMoreInfoLocation({x:event.clientX,y:event.clientY});
setRowInfo(rowData);
setOriginalRowInfo({…rowData});
切换MoreInfo(真);
};
单击行时,我通过params.data获取行数据
我不能只使用rowInfo状态的原因是,每当我对列进行编辑时,ag grid就会改变这种状态。但是使用{…rowData}
似乎可以解决这个问题
我现在唯一的问题是我的一个列值是一个包含对象的数组,当我编辑该列时,它在originalRowInfo
中也会发生更改。我想这与对象引用有关
该列如下所示:
[
{位置:1,加热次数:100},
{位置:2,加热次数:200}
]
实际编辑的是heat\u num
我能想到的唯一一件事是在取消时从DB中重新提取数据,但我宁愿不这样做。如果用户取消编辑,您不需要
原始行信息
重置为原始状态,但您可能会做相反的操作:在用户编辑和执行以下操作时,将新值inputValue
保存为临时状态:
- 如果用户提交结果:调用
提交结果ICellRenderParams.setValue(inputValue)
- 否则,如果用户中止:只需将
重置为inputValue
即原始值,即可放弃结果icellrenderparams.value
函数EditableCellRenderer(参数:IcellRenderParams){
const[editable,setEditable]=React.useState(false);
常量[原始数据]=React.useState(参数值);
常量[inputValue,setInputValue]=React.useState(params.value);
const inputRef=React.useRef(null);
const onEdit=()=>{
可编辑设置(真);
设置超时(()=>{
inputRef.current?.focus();
});
};
const onCancel=()=>{
设置输入值(原始数据);
可编辑设置(假);
};
const onSubmit=()=>{
参数设置值(inputValue);
可编辑设置(假);
};
返回(
setInputValue(e.target.value)}
已禁用={!可编辑}
/>
E
X
s
);
}
现场演示
谢谢您的回复!这肯定比我的方法干净得多,但我有一个问题。一次编辑一行中的多个列是否有效?您可以查看@aus_10