![]()
In this โCRUD operations using SPFx no javascript frameworkโ tutorial, we will learn about how we can do the SharePoint crud operations using the SPFx no javascript framework.
Key Highlights: CRUD operations using SPFx no javascript framework
- Create the SharePoint project scaffolding
- Verify the project scaffolding
- Customize the code for SharePoint CRUD operation using the SPFx no javascript framework
- SPFx Web part Project Main TS (TypeScript) File(SpcrudOperationUsingSpFxNoJavascriptFrameworkWebPart.ts)
- Complete Code: SharePoint CRUD operation using the SPFx no Javascript framework
- SPFx framework Render Method code
- Code to get all items from SharePoint list using SPFx framework
- Code to save or add the item in SharePoint List using the SPFx framework
- Code to update the item in SharePoint List using the SPFx framework
- Code to delete the item from SharePoint List using SPFx framework
- Code to get the SharePoint list item by ID using the SPFx framework
- Code to clear form data entry after submitting the form to SharePoint list using SPFx framework
- The โIListItem.d.tsโ and โMyAppStyle.cssโ files in the SharePoint SPFx Framework project
- Source Code
- Summary: What we have learned here?
- See Also
We will go through this tutorial step by step and at the end of this tutorial, we will be able to see the below SPFX CRUD operation web part which renders in the browser.

SharePoint crud operations using SPFx no javascript framework (CRUD operations using SPFx)
Step 1:ย Create the SharePoint project scaffolding
- Open the node.js command prompt and go to your desired folder path where you want to create your project.
cd C:\Temp\SPFx

Note:
- If you have installed node.js โ you can use any of the commands prompts like windows command prompt, PowerShell, or Node.js command prompt.
2. Create a new project folder in the above location, using the below command:
3. Run theย Yeoman SharePoint Generator โย to create the SharePoint project scaffolding.
yo @microsoft/sharepoint
After a few seconds, we will be asked to pass the parameters in a sequence, so in most of the parameters,ย pass the default selection as-is:
- Accept the default spcrud-operation-using-sp-fx-no-javascript-framework-web partย as your solution name, and then press the enter key.
- Selectย SharePoint Online only (latest), for Which baseline packages do you want to target for your component(s)? and press the enter key.
- Selectย Use the current folderย for where do you want to place the files?
- Selectย Nย for โDo you want to allow the tenant admin the choice of being able to deploy the solution to all sites immediately without
running any feature deployment or adding apps in sites? โ - Selectย Nย for โWill the components in the solution require permissions to access web APIs that are unique and not shared with other components in the tenant?โ
- Selectย WebPartย for โWhich type of client-side component to create?โ
Notes:
We can create three types of projects in SharePoint Framework (SPFx):
- WebPart
- Extension
- Library
Now in the subsequent prompts โ it will ask the specific input about the web part.
1. What is your Web part name? spcrud-operation-using-sp-fx-no -javascript-framework - hit enter key 2. What is your Web part description? (spcrud-operation-using-sp-fx-no-javascript-framework description)-hit enter key 3. Which framework would you like to use? (Use arrow keys) - select No JavaScript framework
Notes:
There are three types of frameworks available, such as:
- No JavaScript framework
- React
- Knockout
For this demo example, I have selected the โNo JavaScript frameworkโ.ย
Finally, the yo @microsoft/sharepoint โ SPFX web part project execution status will be like the below:

Step 2:ย Verify the project scaffolding
Run the โgulp buildโ and โgulp serveโ commands to verify the SPFx project is scaffolded successfully.
SPFx Gulp Build โ run the โgulp buildโ command to build the project.

Office SharePoint Workbench SPFx Runtime test โ to test the SPFx project run the โgulp serveโ command.

Verify the web part renders successfully in the browser.
Note:
- If the web part renders successfully in the browser, we can ensure the basic SPFx projected has been scaffolded successfully.

Step 3: Customize the code for SharePoint CRUD operation using the SPFx no javascript framework
To open the SPFx code in visual studio editor, we need to type โcode .โ (code single space dot).

SPFx Web part Project Main TS (TypeScript) file
For SPFx web part project, there will be a file with the web part name(.ts extension), which is the heart of the SPFx web part project โ for any sort of customization we need to start here, example as below: SpcrudOperationUsingSpFxNoJavascriptFrameworkWebPart.ts

Beginning of this file we need to import all modules to use in the project, exactly the same as โusing namespacesโ in the C# programming.
Complete Code: SharePoint CRUD operation using SPFx no Javascript framework
importย {ย Versionย }ย fromย '@microsoft/sp-core-library';
importย {
ย ย IPropertyPaneConfiguration,
ย ย PropertyPaneTextField,
ย ย PropertyPaneCheckbox,
ย ย PropertyPaneDropdown,
ย ย PropertyPaneToggle
}ย fromย '@microsoft/sp-property-pane';
importย {ย BaseClientSideWebPartย }ย fromย '@microsoft/sp-webpart-base';
importย {ย escapeย }ย fromย '@microsoft/sp-lodash-subset';
importย {IListItem}ย fromย './loc/IListItem';
importย stylesย fromย './SpcrudOperationUsingSpFxNoJavascriptFrameworkWebPart.module.scss';
importย *ย asย stringsย fromย 'SpcrudOperationUsingSpFxNoJavascriptFrameworkWebPartStrings';
importย {ย SPComponentLoaderย }ย from'@microsoft/sp-loader';
importย './loc/css/MyAppStyle.css';
import
ย {
ย ย SPHttpClient,
ย ย SPHttpClientResponseย ย ย
}ย fromย '@microsoft/sp-http';
import
ย {
ย ย Environment,
ย ย EnvironmentType
}ย fromย '@microsoft/sp-core-library';
exportย interfaceย ISPListsย {
ย ย value:ย ISPList[];
}
exportย interfaceย ISPListย {
ย ย Title:ย string;
ย ย
}
exportย interfaceย ISpcrudOperationUsingSpFxNoJavascriptFrameworkWebPartPropsย {
ย ย description:ย string;
}
exportย defaultย classย SpcrudOperationUsingSpFxNoJavascriptFrameworkWebPartย extendsย BaseClientSideWebPartย <ISpcrudOperationUsingSpFxNoJavascriptFrameworkWebPartProps>
{
ย ย privateย listItemEntityTypeName:ย stringย =ย undefined;ย
ย ย privateย Listnameย :string="CustomerDetails";
ย ย privateย _getListData():ย Promise<ISPLists>
ย ย ย {
ย ย ย ย returnย this.context.spHttpClient.get(this.context.pageContext.web.absoluteUrlย +ย "/_api/web/lists/GetByTitle('Conrosย Products')/Items",SPHttpClient.configurations.v1)
ย ย ย ย ย ย ย ย .then((response:ย SPHttpClientResponse)ย =>ย {
ย ย ย ย ย ย ย ย returnย response.json();
ย ย ย ย ย ย ย ย });
ย ย ย ย }
ย ย ย ย privateย _renderListAsync():ย void
ย ย ย ย ย {
ย ย ย ย
ย ย ย ย ย ย ifย (Environment.typeย ==ย EnvironmentType.SharePointย ||ย
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย Environment.typeย ==ย EnvironmentType.ClassicSharePoint)ย {
ย ย ย ย ย ย ย this._getListData()
ย ย ย ย ย ย ย ย ย .then((response)ย =>ย {
ย ย ย ย ย ย ย ย ย ย ย this._renderList(response.value);
ย ย ย ย ย ย ย ย ย });
ย ย ย ย ย }
ย ย ย }
ย ย ย privateย _renderList(items:ย ISPList[]):ย voidย
ย ย ย {
ย ย ย ย letย html:ย stringย =ย '<tableย border=1ย width=100%ย style="border-collapse:ย collapse;">';
ย ย ย ย htmlย +=ย '<th>Title</th>ย <th>Productย Code</th><th>Productย Description</th>';
ย ย ย ย items.forEach((item:ย ISPList)ย =>ย {
ย ย ย ย ย ย htmlย +=ย `
ย ย ย ย ย ย <tr>ย ย ย ย ย ย ย ย ย ย ย ย
ย ย ย ย ย ย ย ย ย ย <td>${item.Title}</td>ย ย ย ย ย ย ย ย ย
ย ย ย ย ย ย ย ย ย ย
ย ย ย ย ย ย ย ย ย ย </tr>
ย ย ย ย ย ย ย ย ย ย `;
ย ย ย ย });
ย ย ย ย htmlย +=ย '</table>';
ย ย
ย ย ย ย constย listContainer:ย Elementย =ย this.domElement.querySelector('#spListContainer');
ย ย ย ย listContainer.innerHTMLย =ย html;
ย ย }
ย ย publicย render():ย voidย {ย
ย ย ย ย this.domElement.innerHTMLย =ย `ย
ย ย ย ย <divย class="${styles.spcrudOperationUsingSpFxNoJavascriptFramework}">
ย ย ย ย <divย class="${styles.container}">
ย ย ย ย <divย class="${styles.row}">
ย ย ย ย <divย class="${styles.column}">
ย ย ย ย <spanย class="${styles.title}"></span>
ย ย ย ย
ย ย ย ย <divย class="row">
ย ย ย ย <h2ย style="text-align:left"ย id="statusMode">
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย CRUDย Operationย Fromย SharePointย Listย Usingย NoFrameworkย SPFXย Onlineย
ย ย ย ย </h2>
ย ย ย ย <divย class="row">
ย ย ย ย <divย class="col-25">
ย ย ย ย <labelย for="fname">Title</label>
ย ย ย ย </div>
ย ย ย ย <divย class="col-75">
ย ย ย ย <inputย type="text"ย id="idTitle"ย name="Title"ย placeholder="Title.">
ย ย ย ย </div>
ย ย ย ย </div>
ย ย ย ย <divย class="row">
ย ย ย ย <divย class="col-25">
ย ย ย ย <labelย for="fname">Name</label>
ย ย ย ย </div>
ย ย ย ย <divย class="col-75">
ย ย ย ย <inputย type="text"ย id="idCustName"ย name="firstname"ย placeholder="Name.">
ย ย ย ย </div>
ย ย ย ย </div>
ย ย ย ย <divย class="row">
ย ย ย ย <divย class="col-25">
ย ย ย ย <labelย for="lname">Gender</label>
ย ย ย ย </div>
ย ย ย ย <divย class="col-75">
ย ย ย ย <inputย type="text"ย id="idCustGender"ย name="gender"ย placeholder="Gender..">
ย ย ย ย </div>
ย ย ย ย </div>
ย ย ย ย <divย class="row">
ย ย ย ย <divย class="col-25">
ย ย ย ย <labelย for="country">Customerย Number</label>
ย ย ย ย </div>
ย ย ย ย <divย class="col-75">
ย ย ย ย <inputย type="text"ย id="idCustNumber"ย name="lname"ย placeholder="Customerย Number..">
ย ย ย ย </div>
ย ย ย ย </div>
ย ย ย ย <divย class="row">
ย ย ย ย <divย class="col-25">
ย ย ย ย <labelย for="subject">CustCategory</label>
ย ย ย ย </div>
ย ย ย ย <divย class="col-75">
ย ย ย ย <inputย type="text"ย id="idCustCategory"ย name="gender"ย placeholder="Customerย Category..">
ย ย ย ย </div>
ย ย ย ย </div>
ย ย ย ย <divย class="row">
ย ย ย ย <divย class="col-25">
ย ย ย ย <labelย for="CustMobileNumber">Customerย Mobileย Number</label>
ย ย ย ย </div>
ย ย ย ย <divย class="col-75">
ย ย ย ย <inputย type="text"ย id="idCustMobileNumber"ย name="CustMobileNumber"ย placeholder="Customerย Mobileย Number.">
ย ย ย ย </div>
ย ย ย ย </div>
ย ย ย ย <divย class="row">
ย ย ย ย <divย class="col-25">
ย ย ย ย <labelย for="CustCity">Customerย City</label>
ย ย ย ย </div>
ย ย ย ย <divย class="col-75">
ย ย ย ย <inputย type="text"ย id="idCustCity"ย name="CustCity"ย placeholder="Customerย City.">
ย ย ย ย </div>
ย ย ย ย </div>
ย ย ย ย <divย class="row">
ย ย ย ย <divย class="col-25">
ย ย ย ย <labelย for="Remark">Remark</label>
ย ย ย ย </div>
ย ย ย ย <divย class="col-75">
ย ย ย ย <inputย type="text"ย id="idRemark"ย name="Remark"ย placeholder="Remark.">
ย ย ย ย </div>
ย ย ย ย </div>
ย ย ย ย <!--ย hiddenย controlsย -->
ย ย ย ย <divย style="display:ย none">
ย ย ย ย <inputย id="recordId"ย />
ย ย ย ย </div>
ย ย ย ย <divย class="row">
ย ย ย ย <divย class="ms-Grid-rowย ms-bgColor-themeDarkms-fontColor-whiteย ${styles.row}">
ย ย ย ย
ย ย ย ย <divย ย style="margin-left:ย 66px"ย class="ms-Grid-colย ms-u-lg10ย ms-u-xl8ย ms-u-xlPush2ย ms-u-lgPush1"ย >
ย ย ย ย <buttonย class="${styles.button}ย create-Button">
ย ย ย ย <spanย class="${styles.label}">Save</span>
ย ย ย ย </button>
ย ย ย ย <buttonย class="${styles.button}ย update-Button">
ย ย ย ย <spanย class="${styles.label}">Update</span>
ย ย ย ย </button>
ย ย ย ย <buttonย ย class="${styles.button}ย read-Button">
ย ย ย ย <spanย ย class="${styles.label}">Clearย All</span>
ย ย ย ย </button>
ย ย ย ย </div>
ย ย ย ย </div>
ย ย ย ย </div>
ย ย ย ย <divย class="divTableblueTable">
ย ย ย ย <divย class="divTableHeading">
ย ย ย ย <divย class="divTableRow">
ย ย ย ย <divย class="divTableHead">Title</div>
ย ย ย ย <divย class="divTableHead">Name</div>
ย ย ย ย <divย class="divTableHead">Gender</div>
ย ย ย ย <divย class="divTableHead">Number</div>
ย ย ย ย <divย class="divTableHead">Category</div>
ย ย ย ย <divย class="divTableHead">Mobileย No</div>
ย ย ย ย <divย class="divTableHead">City</div>
ย ย ย ย <divย class="divTableHead">Remark</div>ย ย ย ย
ย ย ย ย </div>
ย ย ย ย </div>
ย ย ย ย <divย class="divTableBody"ย id="fileGrid"ย border="1">
ย ย ย ย </div>
ย ย ย ย </div>
ย ย ย ย <divย class="blueTableouterTableFooter"><divย class="tableFootStyle"><divย class="links"><aย href="#">«</a><aย class="active"ย href="#">1</a><aย href="#">2</a><aย href="#">3</a><aย href="#">4</a><aย href="#">»</a></div></div></div>
ย ย ย ย </div>
ย ย ย ย </div>
ย ย ย ย </div>
ย ย ย ย </div>`;ย
ย ย this._renderListAsync();
ย ย this.setButtonsEventHandlers();
ย ย this.getAllItemsFromList();
}
privateย setButtonsEventHandlers():ย void
{ย
ย constย webPart:SpcrudOperationUsingSpFxNoJavascriptFrameworkWebPartย =ย this;ย
ย this.domElement.querySelector('button.create-Button').addEventListener('click',ย ()ย =>ย {ย webPart.SaveItemToList();ย });ย
ย this.domElement.querySelector('button.update-Button').addEventListener('click',ย ()ย =>ย {ย webPart.updateItemInList();ย });ย
}
//ย Startย Getย Allย Dataย Fromย SharePointย List
privateย getAllItemsFromList()
{ย
ย ย this.context.spHttpClient.get(`${this.context.pageContext.web.absoluteUrl}/_api/web/lists/getbytitle('${this.Listname}')/items?$orderby=Createdย desc`,ย
ย ย ย ย ย ย ย ย ย ย ย ย ย SPHttpClient.configurations.v1,ย
ย ย ย ย ย ย ย ย ย ย ย ย ย {ย
ย ย headers:ย {ย
ย ย 'Accept':ย 'application/json;odata=nometadata',ย
ย ย 'odata-version':ย ''
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย }ย
ย ย ย ย ย ย ย ย ย ย ย ย ย })
ย ย ย ย ย ย ย ย ย ย ย ย ย .then((response:ย SPHttpClientResponse)=>ย {ย
ย ย returnย response.json();ย
ย ย ย ย ย ย ย ย ย ย ย ย ย })ย
ย ย ย ย ย ย ย ย ย ย ย ย ย .then((item):voidย =>ย {
ย ย debugger;
ย ย varย lenย =ย item.value.length;
ย ย varย txtย =ย "";
ย ย if(len>0){
ย ย for(varย i=0;i<len;i++){
ย ย
ย ย txtย +=ย '<divย class="divTableRow"ย ><divย class="divTableCell">'+item.value[i].Titleย +'</div><divย class="divTableCell">'+item.value[i].CustName+'</div><divย class="divTableCell">'+item.value[i].CustGender+'</div>'ย +
ย ย '<divย class="divTableCell">'+item.value[i].CustNumber+'</div><divย class="divTableCell">'+item.value[i].CustCategory+'</div><divย class="divTableCell">'+item.value[i].CustMobileNumber+'</div><divย class="divTableCell">'+item.value[i].CustCity+'</div><divย class="divTableCell">'+item.value[i].Remark+'</div><divย class="divTableCell">'+"<aย id='"ย +ย item.value[i].IDย +ย "'ย href='#'ย class='EditFileLink'>Edit</a>"+'</div><divย class="divTableCell">'+"<aย id='"ย +ย item.value[i].IDย +ย "'ย href='#'ย class='DeleteLink'>Delete</a>"+'</div></div>';
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย }
ย ย if(txtย !=ย ""){
ย ย document.getElementById("fileGrid").innerHTMLย =ย txt;
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย }
ย ย
ย ย //ย ย deleteย Startย Bindย Theย Eventย intoย anchorย Tag
ย ย letย listItemsย =ย document.getElementsByClassName("DeleteLink");
ย ย for(letย j:numberย =ย 0;ย j<listItems.length;ย j++){
ย ย listItems[j].addEventListener('click',ย (event)ย =>ย {
ย ย this.DeleteItemClicked(event);
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย });
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย }
ย ย //ย Endย Bindย Theย Eventย intoย anchorย Tag
ย ย
ย ย //ย ย Editย Startย Bindย Theย Eventย intoย anchorย Tag
ย ย letย EditlistItemsย =ย document.getElementsByClassName("EditFileLink");
ย ย for(letย j:numberย =ย 0;ย j<EditlistItems.length;ย j++){
ย ย EditlistItems[j].addEventListener('click',ย (event)ย =>ย {
ย ย this.UpdateItemClicked(event);
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย });ย
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย }
ย ย //ย Endย Bindย Theย Eventย intoย anchorย Tag
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย }
ย ย //ย debugger;
ย ย
ย ย //console.log(item.Title)ย ;
ย ย
ย ย ย ย ย ย ย ย ย ย ย ย ย },ย (error:ย any):ย voidย =>ย {ย
ย ย alert(error);
ย ย ย ย ย ย ย ย ย ย ย ย ย });ย
ย ย ย ย ย ย ย ย }
//ย Endย Getย Allย Dataย Fromย SharePointย ย List
//Startย Saveย Itemย inย SharerPointย List
privateย SaveItemToList():ย voidย {ย
ย ย debugger;
ย ย if(document.getElementById('idTitle')["value"]=="")
ย ย ย ย ย ย {
ย ย alert('Requiredย theย Titleย !!!');
ย ย return;
ย ย ย ย ย ย }
ย ย if(document.getElementById('idCustName')["value"]=="")
ย ย ย ย ย ย {
ย ย alert('Requiredย theย Customerย Nameย !!!');
ย ย return;
ย ย ย ย ย ย }
ย ย if(document.getElementById('idCustGender')["value"]=="")
ย ย ย ย ย ย {
ย ย alert('Requiredย theย Customerย Genderย !!!');
ย ย return;
ย ย ย ย ย ย }
ย ย if(document.getElementById('idCustNumber')["value"]=="")
ย ย ย ย ย ย {
ย ย alert('Requiredย theย Customerย Numberย !!!');
ย ย return;
ย ย ย ย ย ย }
ย ย if(document.getElementById('idCustCategory')["value"]=="")
ย ย ย ย ย ย {
ย ย alert('Requiredย theย Categoryย !!!');
ย ย return;
ย ย ย ย ย ย }
ย ย ย ย ย ย if(document.getElementById('idCustMobileNumber')["value"]=="")
ย ย ย ย ย ย {
ย ย alert('Requiredย theย Customerย Mobileย Numberย !!!');
ย ย return;
ย ย ย ย ย ย }
ย ย ย ย ย ย if(document.getElementById('idCustCity')["value"]=="")
ย ย ย ย ย ย {
ย ย alert('Requiredย theย Customerย Cityย !!!');
ย ย return;
ย ย ย ย ย ย }
ย ย ย ย ย ย /*ย
ย ย ย ย ย ย if(document.getElementById('idRemark')["value"]=="")
ย ย ย ย ย ย {
ย ย alert('Requiredย theย Remarkย !!!')
ย ย return;
ย ย ย ย ย ย }
ย ย ย ย ย ย */
ย ย constย body:ย stringย =ย JSON.stringify({ย
ย ย 'Title':ย document.getElementById('idTitle')["value"],
ย ย 'CustName':ย document.getElementById('idCustName')["value"],
ย ย 'CustGender':ย document.getElementById('idCustGender')["value"],
ย ย 'CustNumber':ย document.getElementById('idCustNumber')["value"],
ย ย 'CustCategory':ย document.getElementById('idCustCategory')["value"],
ย ย 'CustMobileNumber':ย document.getElementById('idCustMobileNumber')["value"],ย
ย ย 'CustCity':ย document.getElementById('idCustCity')["value"],
ย ย 'Remark':ย document.getElementById('idRemark')["value"]ย ย ย
ย ย ย ย ย ย });ย ย
ย ย this.context.spHttpClient.post(`${this.context.pageContext.web.absoluteUrl}/_api/web/lists/getbytitle('${this.Listname}')/items`,ย
ย ย ย ย ย ย SPHttpClient.configurations.v1,ย
ย ย ย ย ย ย {ย
ย ย headers:ย {ย
ย ย 'Accept':ย 'application/json;odata=nometadata',ย
ย ย 'Content-type':ย 'application/json;odata=nometadata',ย
ย ย 'odata-version':ย ''
ย ย ย ย ย ย ย ย },ย
ย ย body:ย bodyย
ย ย ย ย ย ย })ย
ย ย ย ย ย ย .then((response:ย SPHttpClientResponse):ย Promise<IListItem>=>ย {ย
ย ย returnย response.json();ย
ย ย ย ย ย ย })ย
ย ย ย ย ย ย .then((item:ย IListItem):ย voidย =>ย {
ย ย this.ClearMethodInForm();
ย ย alert('Itemย hasย beenย successfullyย Savedย ');
ย ย localStorage.removeItem('ItemId');
ย ย localStorage.clear();
ย ย this.getAllItemsFromList();
ย ย ย ย ย ย },ย (error:ย any):ย voidย =>ย {ย
ย ย alert(`${error}`);ย
ย ย ย ย ย ย });ย
ย ย ย ย }ย
ย ย //Endย Saveย Itemย inย SharerPointย List
ย ย //Startย Updateย Itemย inย SharerPointย List
privateย UpdateItemClicked(ev):ย void{
ย ย letย me:anyย =ย ev.target;
ย ย this.getItemByIDFromList(me.id);
ย ย ย ย }
ย ย privateย updateItemInList(){
ย ย ///alert(localStorage.getItem('ItemId'))ย ;
ย ย constย body:ย stringย =ย JSON.stringify({ย
ย ย ย ย 'Title':ย document.getElementById('idTitle')["value"],
ย ย ย ย 'CustName':ย document.getElementById('idCustName')["value"],
ย ย ย ย 'CustGender':ย document.getElementById('idCustGender')["value"],
ย ย ย ย 'CustNumber':ย document.getElementById('idCustNumber')["value"],
ย ย ย ย 'CustCategory':ย document.getElementById('idCustCategory')["value"],
ย ย ย ย 'CustMobileNumber':ย document.getElementById('idCustMobileNumber')["value"],ย
ย ย ย ย 'CustCity':ย document.getElementById('idCustCity')["value"],
ย ย ย ย 'Remark':ย document.getElementById('idRemark')["value"]ย ย ย ย
ย ย ย ย ย ย });ย ย
ย ย this.context.spHttpClient.post(`${this.context.pageContext.web.absoluteUrl}/_api/web/lists/getbytitle('${this.Listname}')/items(${localStorage.getItem('ItemId')})`,ย
ย ย ย ย ย ย ย ย ย ย ย ย SPHttpClient.configurations.v1,ย
ย ย ย ย ย ย ย ย ย ย ย ย {ย
ย ย headers:ย {ย
ย ย 'Accept':ย 'application/json;odata=nometadata',ย
ย ย 'Content-type':ย 'application/json;odata=nometadata',ย
ย ย 'odata-version':ย '',ย
ย ย 'IF-MATCH':ย '*',ย
ย ย 'X-HTTP-Method':ย 'MERGE'
ย ย ย ย ย ย ย ย ย ย ย ย ย ย },ย
ย ย body:ย body
ย ย ย ย ย ย ย ย ย ย ย ย })ย
ย ย ย ย ย ย ย ย ย ย ย ย .then((response:ย SPHttpClientResponse):ย voidย =>ย {ย
ย ย alert(`Itemย withย ID:ย ${localStorage.getItem('ItemId')}ย successfullyย updated`);
ย ย this.ClearMethodInForm();
ย ย localStorage.removeItem('ItemId');
ย ย localStorage.clear();
ย ย this.getAllItemsFromList();
ย ย
ย ย ย ย ย ย ย ย ย ย ย ย },ย (error:ย any):ย voidย =>ย {ย
ย ย alert(`${error}`);ย
ย ย ย ย ย ย ย ย ย ย ย ย });ย
ย ย
ย ย ย ย }ย
ย ย //Endย Updateย Itemย inย SharerPointย List
ย ย //ย Deleteย theย Itemsย Fromย SharePointย List
privateย DeleteItemClicked(ev):ย void{
ย ย letย me:anyย =ย ev.target;
ย ย //alert(me.id);
ย ย this.deleteItemfromList(me.id);ย ย ย
ย ย ย ย }
ย ย privateย deleteItemfromList(Id:ย number){
ย ย ifย (!window.confirm('Areย youย sureย youย wantย toย deleteย theย latestย item?'))ย {ย
ย ย return;ย
ย ย ย ย ย ย }ย
ย ย letย etag:ย stringย =ย undefined;ย
ย ย this.context.spHttpClient.post(`${this.context.pageContext.web.absoluteUrl}/_api/web/lists/getbytitle('${this.Listname}')/items(${Id})`,ย
ย ย ย ย ย ย ย ย ย ย ย ย SPHttpClient.configurations.v1,ย
ย ย ย ย ย ย ย ย ย ย ย ย {ย
ย ย headers:ย {ย
ย ย 'Accept':ย 'application/json;odata=nometadata',ย
ย ย 'Content-type':ย 'application/json;odata=verbose',ย
ย ย 'odata-version':ย '',ย
ย ย 'IF-MATCH':ย '*',ย
ย ย 'X-HTTP-Method':ย 'DELETE'
ย ย ย ย ย ย ย ย ย ย ย ย ย ย }ย
ย ย ย ย ย ย ย ย ย ย ย ย })
ย ย ย ย ย ย ย ย .then((response:ย SPHttpClientResponse):ย voidย =>ย {ย
ย ย alert(`Itemย withย ID:ย ${Id}ย successfullyย Deleted`);
ย ย
ย ย this.getAllItemsFromList();
ย ย ย ย ย ย ย ย },ย (error:ย any):ย voidย =>ย {ย
ย ย alert(`${error}`);ย
ย ย ย ย ย ย ย ย });ย
ย ย ย ย }ย
ย ย //ย Endย Deleteย theย Itemsย Fromย SharePointย List
//ย Startย Getย Itemย Byย Id
privateย getItemByIDFromList(Id:ย number)
{ย
ย ย this.context.spHttpClient.get(`${this.context.pageContext.web.absoluteUrl}/_api/web/lists/getbytitle('${this.Listname}')/items(${Id})`,ย
ย ย ย ย ย ย ย SPHttpClient.configurations.v1,ย
ย ย ย ย ย ย ย {ย
ย ย headers:ย {ย
ย ย 'Accept':ย 'application/json;odata=nometadata',ย
ย ย 'odata-version':ย ''
ย ย ย ย ย ย ย ย ย }ย
ย ย ย ย ย ย ย })
ย ย ย ย ย ย ย .then((response:ย SPHttpClientResponse)=>ย {ย
ย ย returnย response.json();ย
ย ย ย ย ย ย ย })ย
ย ย ย ย ย ย ย .then((item):voidย =>ย {
ย ย document.getElementById('idTitle')["value"]=item.Title;
ย ย document.getElementById('idCustName')["value"]=item.CustName;
ย ย document.getElementById('idCustGender')["value"]=item.CustGender;
ย ย document.getElementById('idCustNumber')["value"]=item.CustNumber;
ย ย document.getElementById('idCustCategory')["value"]=item.CustCategory;
ย ย document.getElementById('idCustMobileNumber')["value"]=item.CustMobileNumber;
ย ย document.getElementById('idCustCity')["value"]=item.CustCity;
ย ย document.getElementById('idRemark')["value"]=item.Remark;
ย ย localStorage.setItem('ItemId',ย item.Id);
ย ย
ย ย ย ย ย ย ย },ย (error:ย any):ย voidย =>ย {ย
ย ย alert(error);
ย ย ย ย ย ย ย });ย
ย ย }
ย ย //ย Endย Getย Itemย Byย Id
//ย startย Clearย Methodย ofย inputย type
privateย ClearMethodInForm()
{
ย ย document.getElementById('idTitle')["value"]="";
ย ย document.getElementById('idCustName')["value"]="";
ย ย document.getElementById('idCustGender')["value"]="";
ย ย document.getElementById('idCustNumber')["value"]="";
ย ย document.getElementById('idCustCategory')["value"]="";
ย ย document.getElementById('idCustMobileNumber')["value"]="";
ย ย document.getElementById('idCustCity')["value"]="";
ย ย document.getElementById('idRemark')["value"]="";
}
//ย Endย Clearย Methodย ofย inputย type
protectedย getย dataVersion():ย Version
ย ย ย {
ย ย returnย Version.parse('1.0');
}
protectedย getPropertyPaneConfiguration():ย IPropertyPaneConfigurationย {
ย ย returnย {
ย ย ย ย pages:ย [
ย ย ย ย ย ย {
ย ย ย ย ย ย ย ย header:
ย ย ย ย ย ย ย ย ย {
ย ย ย ย ย ย ย ย ย ย description:ย strings.PropertyPaneDescription
ย ย ย ย ย ย ย ย },
ย ย ย ย ย ย ย ย groups:ย [
ย ย ย ย ย ย ย ย ย ย {
ย ย ย ย ย ย ย ย ย ย ย ย groupName:ย strings.BasicGroupName,
ย ย ย ย ย ย ย ย ย ย ย
ย ย ย ย ย ย ย ย ย ย ย ย
ย ย ย ย ย ย ย ย ย ย ย ย groupFields:ย [
ย ย ย ย ย ย ย ย ย ย ย ย ย ย PropertyPaneTextField('listname',ย {ย
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย label:ย strings.ListNameFieldLabel
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย }),
ย ย ย ย ย ย ย ย ย ย ย ย PropertyPaneTextField('description',ย {
ย ย ย ย ย ย ย ย ย ย ย ย ย ย label:ย 'Description'
ย ย ย ย ย ย ย ย ย ย ย ย }),
ย ย ย ย ย ย ย ย ย ย ย ย PropertyPaneTextField('test',ย {
ย ย ย ย ย ย ย ย ย ย ย ย ย ย label:ย 'Multi-lineย Textย Field',
ย ย ย ย ย ย ย ย ย ย ย ย ย ย multiline:ย true
ย ย ย ย ย ย ย ย ย ย ย ย }),
ย ย ย ย ย ย ย ย ย ย ย ย PropertyPaneCheckbox('test1',ย {
ย ย ย ย ย ย ย ย ย ย ย ย ย ย text:ย 'Checkbox'
ย ย ย ย ย ย ย ย ย ย ย ย }),
ย ย ย ย ย ย ย ย ย ย ย ย PropertyPaneDropdown('test2',ย {
ย ย ย ย ย ย ย ย ย ย ย ย ย ย label:ย 'Dropdown',
ย ย ย ย ย ย ย ย ย ย ย ย ย ย options:ย [
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย {ย key:ย '1',ย text:ย 'One'ย },
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย {ย key:ย '2',ย text:ย 'Two'ย },
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย {ย key:ย '3',ย text:ย 'Three'ย },
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย {ย key:ย '4',ย text:ย 'Four'ย }
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ]}),
ย ย ย ย ย ย ย ย ย ย ย ย ย ย PropertyPaneToggle('test3',ย {
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย label:ย 'Toggle',
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย onText:ย 'On',
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย offText:ย 'Off'
ย ย ย ย ย ย ย ย ย ย ย ย })
ย ย ย ย ย ย ย ย ย ย ย ย
ย ย ย ย ย ย ย ย ย ย ]
ย ย ย ย ย ย ย ย ย ย }
ย ย ย ย ย ย ย ย ]
ย ย ย ย ย ย }
ย ย ย ย ]
ย ย };
}
ย ย
}
SPFx framework Render Method code
Below is the Render method which does the job to render the web part in the browser.
publicย render():ย voidย {ย
ย ย ย ย this.domElement.innerHTMLย =ย `ย
ย ย ย ย <divย class="${styles.spcrudOperationUsingSpFxNoJavascriptFramework}">
ย ย ย ย <divย class="${styles.container}">
ย ย ย ย <divย class="${styles.row}">
ย ย ย ย <divย class="${styles.column}">
ย ย ย ย <spanย class="${styles.title}"></span>
ย ย ย ย
ย ย ย ย <divย class="row">
ย ย ย ย <h2ย style="text-align:left"ย id="statusMode">
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย CRUDย Operationย Fromย SharePointย Listย Usingย NoFrameworkย SPFXย Onlineย
ย ย ย ย </h2>
ย ย ย ย <divย class="row">
ย ย ย ย <divย class="col-25">
ย ย ย ย <labelย for="fname">Title</label>
ย ย ย ย </div>
ย ย ย ย <divย class="col-75">
ย ย ย ย <inputย type="text"ย id="idTitle"ย name="Title"ย placeholder="Title.">
ย ย ย ย </div>
ย ย ย ย </div>
ย ย ย ย <divย class="row">
ย ย ย ย <divย class="col-25">
ย ย ย ย <labelย for="fname">Name</label>
ย ย ย ย </div>
ย ย ย ย <divย class="col-75">
ย ย ย ย <inputย type="text"ย id="idCustName"ย name="firstname"ย placeholder="Name.">
ย ย ย ย </div>
ย ย ย ย </div>
ย ย ย ย <divย class="row">
ย ย ย ย <divย class="col-25">
ย ย ย ย <labelย for="lname">Gender</label>
ย ย ย ย </div>
ย ย ย ย <divย class="col-75">
ย ย ย ย <inputย type="text"ย id="idCustGender"ย name="gender"ย placeholder="Gender..">
ย ย ย ย </div>
ย ย ย ย </div>
ย ย ย ย <divย class="row">
ย ย ย ย <divย class="col-25">
ย ย ย ย <labelย for="country">Customerย Number</label>
ย ย ย ย </div>
ย ย ย ย <divย class="col-75">
ย ย ย ย <inputย type="text"ย id="idCustNumber"ย name="lname"ย placeholder="Customerย Number..">
ย ย ย ย </div>
ย ย ย ย </div>
ย ย ย ย <divย class="row">
ย ย ย ย <divย class="col-25">
ย ย ย ย <labelย for="subject">CustCategory</label>
ย ย ย ย </div>
ย ย ย ย <divย class="col-75">
ย ย ย ย <inputย type="text"ย id="idCustCategory"ย name="gender"ย placeholder="Customerย Category..">
ย ย ย ย </div>
ย ย ย ย </div>
ย ย ย ย <divย class="row">
ย ย ย ย <divย class="col-25">
ย ย ย ย <labelย for="CustMobileNumber">Customerย Mobileย Number</label>
ย ย ย ย </div>
ย ย ย ย <divย class="col-75">
ย ย ย ย <inputย type="text"ย id="idCustMobileNumber"ย name="CustMobileNumber"ย placeholder="Customerย Mobileย Number.">
ย ย ย ย </div>
ย ย ย ย </div>
ย ย ย ย <divย class="row">
ย ย ย ย <divย class="col-25">
ย ย ย ย <labelย for="CustCity">Customerย City</label>
ย ย ย ย </div>
ย ย ย ย <divย class="col-75">
ย ย ย ย <inputย type="text"ย id="idCustCity"ย name="CustCity"ย placeholder="Customerย City.">
ย ย ย ย </div>
ย ย ย ย </div>
ย ย ย ย <divย class="row">
ย ย ย ย <divย class="col-25">
ย ย ย ย <labelย for="Remark">Remark</label>
ย ย ย ย </div>
ย ย ย ย <divย class="col-75">
ย ย ย ย <inputย type="text"ย id="idRemark"ย name="Remark"ย placeholder="Remark.">
ย ย ย ย </div>
ย ย ย ย </div>
ย ย ย ย <!--ย hiddenย controlsย -->
ย ย ย ย <divย style="display:ย none">
ย ย ย ย <inputย id="recordId"ย />
ย ย ย ย </div>
ย ย ย ย <divย class="row">
ย ย ย ย <divย class="ms-Grid-rowย ms-bgColor-themeDarkms-fontColor-whiteย ${styles.row}">
ย ย ย ย
ย ย ย ย <divย ย style="margin-left:ย 66px"ย class="ms-Grid-colย ms-u-lg10ย ms-u-xl8ย ms-u-xlPush2ย ms-u-lgPush1"ย >
ย ย ย ย <buttonย class="${styles.button}ย create-Button">
ย ย ย ย <spanย class="${styles.label}">Save</span>
ย ย ย ย </button>
ย ย ย ย <buttonย class="${styles.button}ย update-Button">
ย ย ย ย <spanย class="${styles.label}">Update</span>
ย ย ย ย </button>
ย ย ย ย <buttonย ย class="${styles.button}ย read-Button">
ย ย ย ย <spanย ย class="${styles.label}">Clearย All</span>
ย ย ย ย </button>
ย ย ย ย </div>
ย ย ย ย </div>
ย ย ย ย </div>
ย ย ย ย <divย class="divTableblueTable">
ย ย ย ย <divย class="divTableHeading">
ย ย ย ย <divย class="divTableRow">
ย ย ย ย <divย class="divTableHead">Title</div>
ย ย ย ย <divย class="divTableHead">Name</div>
ย ย ย ย <divย class="divTableHead">Gender</div>
ย ย ย ย <divย class="divTableHead">Number</div>
ย ย ย ย <divย class="divTableHead">Category</div>
ย ย ย ย <divย class="divTableHead">Mobileย No</div>
ย ย ย ย <divย class="divTableHead">City</div>
ย ย ย ย <divย class="divTableHead">Remark</div>ย ย ย ย
ย ย ย ย </div>
ย ย ย ย </div>
ย ย ย ย <divย class="divTableBody"ย id="fileGrid"ย border="1">
ย ย ย ย </div>
ย ย ย ย </div>
ย ย ย ย <divย class="blueTableouterTableFooter"><divย class="tableFootStyle"><divย class="links"><aย href="#">«</a><aย class="active"ย href="#">1</a><aย href="#">2</a><aย href="#">3</a><aย href="#">4</a><aย href="#">»</a></div></div></div>
ย ย ย ย </div>
ย ย ย ย </div>
ย ย ย ย </div>
ย ย ย ย </div>`;ย
ย ย this._renderListAsync();
ย ย this.setButtonsEventHandlers();
ย ย this.getAllItemsFromList();
}
Code to get all items from SharePoint list using SPFx framework
Using the below typescript code, we can read the SharePoint list items.
//ย Startย Getย Allย Dataย Fromย SharePointย List
privateย getAllItemsFromList()
{ย
ย ย this.context.spHttpClient.get(`${this.context.pageContext.web.absoluteUrl}/_api/web/lists/getbytitle('${this.Listname}')/items?$orderby=Createdย desc`,ย
ย ย ย ย ย ย ย ย ย ย ย ย ย SPHttpClient.configurations.v1,ย
ย ย ย ย ย ย ย ย ย ย ย ย ย {ย
ย ย headers:ย {ย
ย ย 'Accept':ย 'application/json;odata=nometadata',ย
ย ย 'odata-version':ย ''
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย }ย
ย ย ย ย ย ย ย ย ย ย ย ย ย })
ย ย ย ย ย ย ย ย ย ย ย ย ย .then((response:ย SPHttpClientResponse)=>ย {ย
ย ย returnย response.json();ย
ย ย ย ย ย ย ย ย ย ย ย ย ย })ย
ย ย ย ย ย ย ย ย ย ย ย ย ย .then((item):voidย =>ย {
ย ย debugger;
ย ย varย lenย =ย item.value.length;
ย ย varย txtย =ย "";
ย ย if(len>0){
ย ย for(varย i=0;i<len;i++){
ย ย
ย ย txtย +=ย '<divย class="divTableRow"ย ><divย class="divTableCell">'+item.value[i].Titleย +'</div><divย class="divTableCell">'+item.value[i].CustName+'</div><divย class="divTableCell">'+item.value[i].CustGender+'</div>'ย +
ย ย '<divย class="divTableCell">'+item.value[i].CustNumber+'</div><divย class="divTableCell">'+item.value[i].CustCategory+'</div><divย class="divTableCell">'+item.value[i].CustMobileNumber+'</div><divย class="divTableCell">'+item.value[i].CustCity+'</div><divย class="divTableCell">'+item.value[i].Remark+'</div><divย class="divTableCell">'+"<aย id='"ย +ย item.value[i].IDย +ย "'ย href='#'ย class='EditFileLink'>Edit</a>"+'</div><divย class="divTableCell">'+"<aย id='"ย +ย item.value[i].IDย +ย "'ย href='#'ย class='DeleteLink'>Delete</a>"+'</div></div>';
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย }
ย ย if(txtย !=ย ""){
ย ย document.getElementById("fileGrid").innerHTMLย =ย txt;
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย }
ย ย
ย ย //ย ย deleteย Startย Bindย Theย Eventย intoย anchorย Tag
ย ย letย listItemsย =ย document.getElementsByClassName("DeleteLink");
ย ย for(letย j:numberย =ย 0;ย j<listItems.length;ย j++){
ย ย listItems[j].addEventListener('click',ย (event)ย =>ย {
ย ย this.DeleteItemClicked(event);
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย });
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย }
ย ย //ย Endย Bindย Theย Eventย intoย anchorย Tag
ย ย
ย ย //ย ย Editย Startย Bindย Theย Eventย intoย anchorย Tag
ย ย letย EditlistItemsย =ย document.getElementsByClassName("EditFileLink");
ย ย for(letย j:numberย =ย 0;ย j<EditlistItems.length;ย j++){
ย ย EditlistItems[j].addEventListener('click',ย (event)ย =>ย {
ย ย this.UpdateItemClicked(event);
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย });ย
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย }
ย ย //ย Endย Bindย Theย Eventย intoย anchorย Tag
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย }
ย ย //ย debugger;
ย ย
ย ย //console.log(item.Title)ย ;
ย ย
ย ย ย ย ย ย ย ย ย ย ย ย ย },ย (error:ย any):ย voidย =>ย {ย
ย ย alert(error);
ย ย ย ย ย ย ย ย ย ย ย ย ย });ย
ย ย ย ย ย ย ย ย }
//ย Endย Getย Allย Dataย Fromย SharePointย ย List
ย
Code to save or add the item in SharePoint List using SPFx framework
//Startย Saveย Itemย inย SharerPointย List
privateย SaveItemToList():ย voidย {ย
ย ย debugger;
ย ย if(document.getElementById('idTitle')["value"]=="")
ย ย ย ย ย ย {
ย ย alert('Requiredย theย Titleย !!!');
ย ย return;
ย ย ย ย ย ย }
ย ย if(document.getElementById('idCustName')["value"]=="")
ย ย ย ย ย ย {
ย ย alert('Requiredย theย Customerย Nameย !!!');
ย ย return;
ย ย ย ย ย ย }
ย ย if(document.getElementById('idCustGender')["value"]=="")
ย ย ย ย ย ย {
ย ย alert('Requiredย theย Customerย Genderย !!!');
ย ย return;
ย ย ย ย ย ย }
ย ย if(document.getElementById('idCustNumber')["value"]=="")
ย ย ย ย ย ย {
ย ย alert('Requiredย theย Customerย Numberย !!!');
ย ย return;
ย ย ย ย ย ย }
ย ย if(document.getElementById('idCustCategory')["value"]=="")
ย ย ย ย ย ย {
ย ย alert('Requiredย theย Categoryย !!!');
ย ย return;
ย ย ย ย ย ย }
ย ย ย ย ย ย if(document.getElementById('idCustMobileNumber')["value"]=="")
ย ย ย ย ย ย {
ย ย alert('Requiredย theย Customerย Mobileย Numberย !!!');
ย ย return;
ย ย ย ย ย ย }
ย ย ย ย ย ย if(document.getElementById('idCustCity')["value"]=="")
ย ย ย ย ย ย {
ย ย alert('Requiredย theย Customerย Cityย !!!');
ย ย return;
ย ย ย ย ย ย }
ย ย ย ย ย ย /*ย
ย ย ย ย ย ย if(document.getElementById('idRemark')["value"]=="")
ย ย ย ย ย ย {
ย ย alert('Requiredย theย Remarkย !!!')
ย ย return;
ย ย ย ย ย ย }
ย ย ย ย ย ย */
ย ย constย body:ย stringย =ย JSON.stringify({ย
ย ย 'Title':ย document.getElementById('idTitle')["value"],
ย ย 'CustName':ย document.getElementById('idCustName')["value"],
ย ย 'CustGender':ย document.getElementById('idCustGender')["value"],
ย ย 'CustNumber':ย document.getElementById('idCustNumber')["value"],
ย ย 'CustCategory':ย document.getElementById('idCustCategory')["value"],
ย ย 'CustMobileNumber':ย document.getElementById('idCustMobileNumber')["value"],ย
ย ย 'CustCity':ย document.getElementById('idCustCity')["value"],
ย ย 'Remark':ย document.getElementById('idRemark')["value"]ย ย ย
ย ย ย ย ย ย });ย ย
ย ย this.context.spHttpClient.post(`${this.context.pageContext.web.absoluteUrl}/_api/web/lists/getbytitle('${this.Listname}')/items`,ย
ย ย ย ย ย ย SPHttpClient.configurations.v1,ย
ย ย ย ย ย ย {ย
ย ย headers:ย {ย
ย ย 'Accept':ย 'application/json;odata=nometadata',ย
ย ย 'Content-type':ย 'application/json;odata=nometadata',ย
ย ย 'odata-version':ย ''
ย ย ย ย ย ย ย ย },ย
ย ย body:ย bodyย
ย ย ย ย ย ย })ย
ย ย ย ย ย ย .then((response:ย SPHttpClientResponse):ย Promise<IListItem>=>ย {ย
ย ย returnย response.json();ย
ย ย ย ย ย ย })ย
ย ย ย ย ย ย .then((item:ย IListItem):ย voidย =>ย {
ย ย this.ClearMethodInForm();
ย ย alert('Itemย hasย beenย successfullyย Savedย ');
ย ย localStorage.removeItem('ItemId');
ย ย localStorage.clear();
ย ย this.getAllItemsFromList();
ย ย ย ย ย ย },ย (error:ย any):ย voidย =>ย {ย
ย ย alert(`${error}`);ย
ย ย ย ย ย ย });ย
ย ย ย ย }ย
ย ย //Endย Saveย Itemย inย SharerPointย List
Code to update the item in SharePoint List using SPFx framework
//Startย Updateย Itemย inย SharerPointย List
privateย UpdateItemClicked(ev):ย void{
ย ย letย me:anyย =ย ev.target;
ย ย this.getItemByIDFromList(me.id);
ย ย ย ย }
ย ย privateย updateItemInList(){
ย ย ///alert(localStorage.getItem('ItemId'))ย ;
ย ย constย body:ย stringย =ย JSON.stringify({ย
ย ย ย ย 'Title':ย document.getElementById('idTitle')["value"],
ย ย ย ย 'CustName':ย document.getElementById('idCustName')["value"],
ย ย ย ย 'CustGender':ย document.getElementById('idCustGender')["value"],
ย ย ย ย 'CustNumber':ย document.getElementById('idCustNumber')["value"],
ย ย ย ย 'CustCategory':ย document.getElementById('idCustCategory')["value"],
ย ย ย ย 'CustMobileNumber':ย document.getElementById('idCustMobileNumber')["value"],ย
ย ย ย ย 'CustCity':ย document.getElementById('idCustCity')["value"],
ย ย ย ย 'Remark':ย document.getElementById('idRemark')["value"]ย ย ย ย
ย ย ย ย ย ย });ย ย
ย ย this.context.spHttpClient.post(`${this.context.pageContext.web.absoluteUrl}/_api/web/lists/getbytitle('${this.Listname}')/items(${localStorage.getItem('ItemId')})`,ย
ย ย ย ย ย ย ย ย ย ย ย ย SPHttpClient.configurations.v1,ย
ย ย ย ย ย ย ย ย ย ย ย ย {ย
ย ย headers:ย {ย
ย ย 'Accept':ย 'application/json;odata=nometadata',ย
ย ย 'Content-type':ย 'application/json;odata=nometadata',ย
ย ย 'odata-version':ย '',ย
ย ย 'IF-MATCH':ย '*',ย
ย ย 'X-HTTP-Method':ย 'MERGE'
ย ย ย ย ย ย ย ย ย ย ย ย ย ย },ย
ย ย body:ย body
ย ย ย ย ย ย ย ย ย ย ย ย })ย
ย ย ย ย ย ย ย ย ย ย ย ย .then((response:ย SPHttpClientResponse):ย voidย =>ย {ย
ย ย alert(`Itemย withย ID:ย ${localStorage.getItem('ItemId')}ย successfullyย updated`);
ย ย this.ClearMethodInForm();
ย ย localStorage.removeItem('ItemId');
ย ย localStorage.clear();
ย ย this.getAllItemsFromList();
ย ย
ย ย ย ย ย ย ย ย ย ย ย ย },ย (error:ย any):ย voidย =>ย {ย
ย ย alert(`${error}`);ย
ย ย ย ย ย ย ย ย ย ย ย ย });ย
ย ย
ย ย ย ย }ย
ย ย //Endย Updateย Itemย inย SharerPointย List
Code to delete the item from SharePoint List using SPFx framework
//ย Deleteย theย Itemsย Fromย SharePointย List
privateย DeleteItemClicked(ev):ย void{
ย ย letย me:anyย =ย ev.target;
ย ย this.deleteItemfromList(me.id);ย ย ย
ย ย ย ย }
ย ย privateย deleteItemfromList(Id:ย number){
ย ย ifย (!window.confirm('Areย youย sureย youย wantย toย deleteย theย latestย item?'))ย {ย
ย ย return;ย
ย ย ย ย ย ย }ย
ย ย letย etag:ย stringย =ย undefined;ย
ย ย this.context.spHttpClient.post(`${this.context.pageContext.web.absoluteUrl}/_api/web/lists/getbytitle('${this.Listname}')/items(${Id})`,ย
ย ย ย ย ย ย ย ย ย ย ย ย SPHttpClient.configurations.v1,ย
ย ย ย ย ย ย ย ย ย ย ย ย {ย
ย ย headers:ย {ย
ย ย 'Accept':ย 'application/json;odata=nometadata',ย
ย ย 'Content-type':ย 'application/json;odata=verbose',ย
ย ย 'odata-version':ย '',ย
ย ย 'IF-MATCH':ย '*',ย
ย ย 'X-HTTP-Method':ย 'DELETE'
ย ย ย ย ย ย ย ย ย ย ย ย ย ย }ย
ย ย ย ย ย ย ย ย ย ย ย ย })
ย ย ย ย ย ย ย ย .then((response:ย SPHttpClientResponse):ย voidย =>ย {ย
ย ย alert(`Itemย withย ID:ย ${Id}ย successfullyย Deleted`);
ย ย
ย ย this.getAllItemsFromList();
ย ย ย ย ย ย ย ย },ย (error:ย any):ย voidย =>ย {ย
ย ย alert(`${error}`);ย
ย ย ย ย ย ย ย ย });ย
ย ย ย ย }ย
ย ย //ย Endย Deleteย theย Itemsย Fromย SharePointย List
Code to getting the SharePoint list item by ID using SPFx framework
//ย Startย Getย Itemย Byย Id
privateย getItemByIDFromList(Id:ย number)
{ย
ย ย this.context.spHttpClient.get(`${this.context.pageContext.web.absoluteUrl}/_api/web/lists/getbytitle('${this.Listname}')/items(${Id})`,ย
ย ย ย ย ย ย ย SPHttpClient.configurations.v1,ย
ย ย ย ย ย ย ย {ย
ย ย headers:ย {ย
ย ย 'Accept':ย 'application/json;odata=nometadata',ย
ย ย 'odata-version':ย ''
ย ย ย ย ย ย ย ย ย }ย
ย ย ย ย ย ย ย })
ย ย ย ย ย ย ย .then((response:ย SPHttpClientResponse)=>ย {ย
ย ย returnย response.json();ย
ย ย ย ย ย ย ย })ย
ย ย ย ย ย ย ย .then((item):voidย =>ย {
ย ย document.getElementById('idTitle')["value"]=item.Title;
ย ย document.getElementById('idCustName')["value"]=item.CustName;
ย ย document.getElementById('idCustGender')["value"]=item.CustGender;
ย ย document.getElementById('idCustNumber')["value"]=item.CustNumber;
ย ย document.getElementById('idCustCategory')["value"]=item.CustCategory;
ย ย document.getElementById('idCustMobileNumber')["value"]=item.CustMobileNumber;
ย ย document.getElementById('idCustCity')["value"]=item.CustCity;
ย ย document.getElementById('idRemark')["value"]=item.Remark;
ย ย localStorage.setItem('ItemId',ย item.Id);
ย ย
ย ย ย ย ย ย ย },ย (error:ย any):ย voidย =>ย {ย
ย ย alert(error);
ย ย ย ย ย ย ย });ย
ย ย }
ย ย //ย Endย Getย Itemย Byย Id
Code to clear form data entry after submitting the form to SharePoint list using SPFx framework
//start clear method for form data entry
privateย ClearMethodInForm()
{
ย ย document.getElementById('idTitle')["value"]="";
ย ย document.getElementById('idCustName')["value"]="";
ย ย document.getElementById('idCustGender')["value"]="";
ย ย document.getElementById('idCustNumber')["value"]="";
ย ย document.getElementById('idCustCategory')["value"]="";
ย ย document.getElementById('idCustMobileNumber')["value"]="";
ย ย document.getElementById('idCustCity')["value"]="";
ย ย document.getElementById('idRemark')["value"]="";
}
//Endclear method for form data entry
The โIListItem.d.tsโ and โMyAppStyle.cssโ file in the SharePoint SPFx Framework project
The โIListItem.d.tsโ and โMyAppStyle.cssโ file need to added to the project in order to render the web part successfully. Example below:

Source Code: CRUD operations using SPFx no javascript framework (CRUD operations using SPFx)
The above source code is available on GitHub, you may download it from here.
Summary: What we have learned here (CRUD operations using SPFx no javascript framework)?
Thus in this article, we have learned how we can do the CRUD operation in SharePoint online using the SPFx no javascript framework.
See Also: SharePoint framework tutorial step by step (SPFxย framework tutorial)
You may also like the below SharePoint framework SPFx articles:
- Develop your first hello world web part in sharepoint framework (SPFx)
- Understanding solution structure in SharePoint framework (SPFx)
- Create custom property in SharePoint Framework โ SPFx web part pane
- Get list items from SharePoint using SPFx framework(No Javascript Framework)
- Custom search result page in SharePoint Online โ SPFx PnP Modern Search solution
ย
ย
About Post Author
Discover more from Global SharePoint
Subscribe to get the latest posts sent to your email.

1 comments on โSharePoint Online: In 4 proven steps CRUD operations using SPFx no javascript frameworkโ