Forum Discussion
change value of one field on the basis of other using spfx field customizer
I have a field name called Security(choice field) and other field name is Sensitivity. I want to copy the values of Security in Sensitivity in the list view. For example if value of security is Internal then in sensitivity column also it should show Internal in the list view only irrespective of the values stored in sensitivity. In laymen term Both field should show same values. I am new in spfx environment. Please help. I am using react framework. Let me know if you need any other details.
Hi LaxmikantB2
The below code should give you Security (choice column) value:
event.listItem["_values"].get("Security")
The result is as follows:
Please note, I am using SPFx v1.15.0
8 Replies
- NanddeepNachanLearn Expert
Hi LaxmikantB2
If you are using SPFx Field Customizer, then implement the onRenderCell with below logic
The method has signature as follows:
public onRenderCell(event: IFieldCustomizerCellEventParameters): void
Use below code to get the Security field value:
const securityValue = event.listItem["_values"].get("Security");
Once you get the item id, you can get the value of other field from same item.
Return the value as:
event.domElement.innerHTML = `<div>${securityValue}</div>`
- LaxmikantB2Copper ContributorNanddeepNachan Have you got a chance to see this?
- NanddeepNachanLearn Expert
Hi LaxmikantB2
I will try to share the working code by coming Sunday. Bit away from laptop due to ongoing festive season. Sorry for that.
- LaxmikantB2Copper Contributor
Hello Nanddeep,
Thanks for your reply...
What Will be inside the "_Values"?
currently my code look like this in .ts file:
public onRenderCell(event: IFieldCustomizerCellEventParameters): void {
const securityValue = event.listItem["_values"].get("Security");const conditionalFc: React.ReactElement<{}> =
React.createElement(ConditionalFc, { text } as IConditionalFcProps);ReactDOM.render(conditionalFc, event.domElement);
}
And in component .tsx filepublic render(): React.ReactElement<{}> {return (<div className={styles.conditionalFc}>{ this.props.text }</div>);}
I am getting error as :
Element implicitly has an 'any' type because expression of type '"_values"' can't be used to index type 'ListItemAccessor'.
Property '_values' does not exist on type 'ListItemAccessor'.