function readOnly(count){ }
Don't have an account?
Search for an answer or ask a question of the zone or Customer Support.
You need to sign in to do that
Sign in to start searching questions
Signup for a Developer Edition
Sign in to start a discussion
<aura:component implements="force:appHostable,flexipage:availableForAllPageTypes" access="global" controller="AccountController"> <aura:attribute name="data" type="Object"/> <aura:attribute name="columns" type="List"/> <aura:attribute name="recordId" type="String"/> <!-- This attribute will hold the update records from data table--> <aura:attribute name="updatedRecord" type="Object[]" /> <aura:handler name="init" action="{!c.doInit}" value="{!this}"/> <!-- You must define keyField as 'Id' to save the record back in Salesforce 'onsave' attribute will executed when user clicks on save button --> <lightning:card title="Account Editable Datatable"> <lightning:datatable aura:id="accountDataTable" columns="{! v.columns }" data="{! v.data }" keyField="Id" onsave ="{!c.onSave}" hideCheckboxColumn="true" onrowaction="{! c.handleRowAction }" /> </lightning:card> </aura:component> JS controller :- ({ doInit : function(component, event, helper) { component.set('v.columns', [ {label: 'Name', fieldName: 'Name', editable:'true', type: 'text'}, {label: 'Phone', fieldName: 'Phone', editable:'true', type: 'phone'}, {label: 'Rating', fieldName: 'Rating', editable:'true', type: 'text'}, {label: 'Custom Field', fieldName: 'My_Custom_Field__c', editable:'true', type: 'text'} ]); helper.getAccounts(component, helper); }, onSave : function (component, event, helper) { helper.saveDataTable(component, event, helper); } }) JS helper :- ({ getAccounts : function(component, event, helper) { var action = component.get("c.getAccounts"); action.setCallback(this,function(response) { var state = response.getState(); if (state === "SUCCESS") { component.set("v.data", response.getReturnValue()); } }); $A.enqueueAction(action); }, saveDataTable : function(component, event, helper) { var editedRecords = component.find("accountDataTable").get("v.draftValues"); var totalRecordEdited = editedRecords.length; var action = component.get("c.updateAccounts"); action.setParams({ 'editedAccountList' : editedRecords }); action.setCallback(this,function(response) { var state = response.getState(); if (state === "SUCCESS") { //if update is successful if(response.getReturnValue() === true){ helper.showToast({ "title": "Record Update", "type": "success", "message": totalRecordEdited+" Account Records Updated" }); helper.reloadDataTable(); } else{ //if update got failed helper.showToast({ "title": "Error!!", "type": "error", "message": "Error in update" }); } } }); $A.enqueueAction(action); }, showToast : function(params){ var toastEvent = $A.get("e.force:showToast"); if(toastEvent){ toastEvent.setParams(params); toastEvent.fire(); } else{ alert(params.message); } }, reloadDataTable : function(){ var refreshEvent = $A.get("e.force:refreshView"); if(refreshEvent){ refreshEvent.fire(); } }, }) Apex Class :- public class AccountController { @AuraEnabled public static List<Account> getAccounts(){ return [SELECT Id, Name, Phone, Rating, My_Custom_Field__c FROM Account LIMIT 200]; } @AuraEnabled public static boolean updateAccounts(List<Account> editedAccountList){ try{ update editedAccountList; return true; } catch(Exception e){ return false; } } }
I have gone through your requirement.Please refer below link which might help you in this.
http://sfdcmonkey.com/2017/08/09/add-delete-rows-dynamic/
Hope this helps you
If this helps kindly mark it as solved so that it may help others in future.
Thanks and Regards
All Answers
I have gone through your requirement.Please refer below link which might help you in this.
http://sfdcmonkey.com/2017/08/09/add-delete-rows-dynamic/
Hope this helps you
If this helps kindly mark it as solved so that it may help others in future.
Thanks and Regards
I have understood your requirement of Create table with input fields using aura component and got a solution over it. I hope it will help you.
Component :-
I hope you find the above solution helpful. If it does, please mark as Best Answer to help others too.
Thanks and Regards,
Ajay Dubedi
www.ajaydubedi.com