Hallo zusammen,
ich mach jetzt hier mal den Anfang, ich hoffe ich bin im richtigen Unterforum...
Und zwar bin ich gerade dabei ein SPFx WebPart zur darstellung einer SharepointOnline-Kontaktliste zu erstellen. (mit CRUD-Operations)
Mein Problem liegt aktuell darin, dass ich in meiner _onRenderItemColumn-Methode einen Button in mein WebPart für jeden Kontakt einfüge und hierrüber die CRUD-Operation zum löschen dieses Kontakts aufrufen möchte.
-> Wie bekomme ich die item.ID in meine deleteData-Methode aus dem onClick-Event?
[CODE lang="jsx" highlight="11, 23"] public _onRenderItemColumn(item: any, index: number, column: IColumn): JSX.Element {
const fieldContent = item[column.fieldName as keyof IContact] as string;
switch (column.key) {
case 'Delete':
return <Link onClick={() => this.deleteData()}>X</Link>;
default:
return <span>{fieldContent}</span>;
}
}
public async deleteData()
{
await sp.web.lists.getByTitle("ContactList").items.getById(/* */).delete();
alert("Contact deleted Successfully");
}
public render(): React.ReactElement<IContactListFinalPnPProps> {
return (
<div className={ styles.contactListFinalPnP }>
<div className={ styles.container }>
<div className={ styles.row }>
<div className={ styles.column }>
<span className={ styles.title }>Welcome to SharePoint!</span>
<p className={ styles.subTitle }>Customize SharePoint experiences using Web Parts.</p>
<p className={ styles.description }>{escape(this.props.description)}</p>
<DetailsList
items={this.state.contacts}
setKey="set"
columns={this.state.columns}
onRenderItemColumn={this._onRenderItemColumn}
onColumnHeaderClick={this._onColumnClick}
onItemInvoked={this._onItemInvoked}
onColumnHeaderContextMenu={this._onColumnHeaderContextMenu}
//onActiveItemChanged="set"
ariaLabelForSelectionColumn="Toggle selection"
ariaLabelForSelectAllCheckbox="Toggle selection for all items"
checkButtonAriaLabel="Row checkbox"
/>[/CODE]
Ich hoffe das ist soweit verständlich... Ich bin noch, naja, relativer Neuling und programmiere insgesamt erst seit September 2020. 🙄
Vielen Dank schonmal an alle für die Hilfe!
ich mach jetzt hier mal den Anfang, ich hoffe ich bin im richtigen Unterforum...
Und zwar bin ich gerade dabei ein SPFx WebPart zur darstellung einer SharepointOnline-Kontaktliste zu erstellen. (mit CRUD-Operations)
Mein Problem liegt aktuell darin, dass ich in meiner _onRenderItemColumn-Methode einen Button in mein WebPart für jeden Kontakt einfüge und hierrüber die CRUD-Operation zum löschen dieses Kontakts aufrufen möchte.
-> Wie bekomme ich die item.ID in meine deleteData-Methode aus dem onClick-Event?
[CODE lang="jsx" highlight="11, 23"] public _onRenderItemColumn(item: any, index: number, column: IColumn): JSX.Element {
const fieldContent = item[column.fieldName as keyof IContact] as string;
switch (column.key) {
case 'Delete':
return <Link onClick={() => this.deleteData()}>X</Link>;
default:
return <span>{fieldContent}</span>;
}
}
public async deleteData()
{
await sp.web.lists.getByTitle("ContactList").items.getById(/* */).delete();
alert("Contact deleted Successfully");
}
public render(): React.ReactElement<IContactListFinalPnPProps> {
return (
<div className={ styles.contactListFinalPnP }>
<div className={ styles.container }>
<div className={ styles.row }>
<div className={ styles.column }>
<span className={ styles.title }>Welcome to SharePoint!</span>
<p className={ styles.subTitle }>Customize SharePoint experiences using Web Parts.</p>
<p className={ styles.description }>{escape(this.props.description)}</p>
<DetailsList
items={this.state.contacts}
setKey="set"
columns={this.state.columns}
onRenderItemColumn={this._onRenderItemColumn}
onColumnHeaderClick={this._onColumnClick}
onItemInvoked={this._onItemInvoked}
onColumnHeaderContextMenu={this._onColumnHeaderContextMenu}
//onActiveItemChanged="set"
ariaLabelForSelectionColumn="Toggle selection"
ariaLabelForSelectAllCheckbox="Toggle selection for all items"
checkButtonAriaLabel="Row checkbox"
/>[/CODE]
Ich hoffe das ist soweit verständlich... Ich bin noch, naja, relativer Neuling und programmiere insgesamt erst seit September 2020. 🙄
Vielen Dank schonmal an alle für die Hilfe!