You need to sign in to do that
Don't have an account?
Valli K
i am trying to delete a row in data table (lightning component). Below is the JS controller & ape controller for this. But not able to fix this.
Lighnting component javascript controller:
deleteRecord : function(component,event,helper,recordId){
var action = component.get("c.deleteSelRecord");
action.setParams({"recordId":recordId});
action.setCallback(this,function(response){
var state = response.getState();
if(state === "SUCCESS"){
var result = response.getReturnValue();
//if(result ==="true"){
// toast message
alert("Requested Record Deleted");
component.set("v.isOpen", false);
// }
console.log(" result :: "+JSON.stringify(result));
}else{
console.log(" Error Occured");
}
});
$A.enqueueAction(action);
}
Apex controller:
@AuraEnabled
public static list<Quote> deleteSelRecord(String recordId){
// boolean result = true;
// if successs return true;
// return result;
System.debug('Quote got deleted');
List<quote> quotess = new List<quote>();
quotess= [Select Id, Name, QuoteNumber,Status,OpportunityId FROM quote where Id =:recordId ORDER BY QuoteNumber ];
if(quotess.size() > 0){
try{
delete quotess;
}catch(Exception e){
ApexPages.Message myMsg = new ApexPages.Message(ApexPages.Severity.ERROR,'Exception: '+e);
ApexPages.addMessage(myMsg);
return quotess;
}
}
deleteRecord : function(component,event,helper,recordId){
var action = component.get("c.deleteSelRecord");
action.setParams({"recordId":recordId});
action.setCallback(this,function(response){
var state = response.getState();
if(state === "SUCCESS"){
var result = response.getReturnValue();
//if(result ==="true"){
// toast message
alert("Requested Record Deleted");
component.set("v.isOpen", false);
// }
console.log(" result :: "+JSON.stringify(result));
}else{
console.log(" Error Occured");
}
});
$A.enqueueAction(action);
}
Apex controller:
@AuraEnabled
public static list<Quote> deleteSelRecord(String recordId){
// boolean result = true;
// if successs return true;
// return result;
System.debug('Quote got deleted');
List<quote> quotess = new List<quote>();
quotess= [Select Id, Name, QuoteNumber,Status,OpportunityId FROM quote where Id =:recordId ORDER BY QuoteNumber ];
if(quotess.size() > 0){
try{
delete quotess;
}catch(Exception e){
ApexPages.Message myMsg = new ApexPages.Message(ApexPages.Severity.ERROR,'Exception: '+e);
ApexPages.addMessage(myMsg);
return quotess;
}
}
Just a few weeks ago I was doing something similar. I will give you my code for reference.
Apex Controller
@AuraEnabled
public static List<String> deleteRecords(List<String> lstRecordId)
{
List <String> oErrorMsg = new List < String > ();
List <Case> lstDeleteRec = [select Id from Case where id IN: lstRecordId];
Database.DeleteResult[] DR_Dels = Database.delete(lstDeleteRec, false);
for (Database.DeleteResult dr: DR_Dels) {
if (dr.isSuccess()) {
system.debug('successful delete contact');
// Operation was successful
} else {
// Operation failed, so get all errors
oErrorMsg.add('');
for (Database.Error err: dr.getErrors()) {
// add Error message to oErrorMsg list and return the list
oErrorMsg.add(err.getStatusCode() + ': ' + err.getMessage());
}
}
}
return oErrorMsg;
}
JavaScript Controller
(just part of it, includes and edit case )
case "delete":
console.log("do delete stuff");
// do delete stuff
var delId = [];
delId.push(message.row.Id);
helper.deleteSelectedHelper(component, event, delId);
break;
JavaScript Helper
deleteSelectedHelper: function(component, event, deleteRecordsIds) {
//call apex class method
var action = component.get('c.deleteRecords');
// pass the all selected record's Id's to apex method
action.setParams({
"lstRecordId": deleteRecordsIds
});
action.setCallback(this, function(response) {
//store state of response
var state = response.getState();
if (state === "SUCCESS") {
console.log(state);
if (response.getReturnValue() != '') {
// if getting any error while delete the records , then display a alert msg/
alert('The following error has occurred. while Delete record-->' + response.getReturnValue());
} else {
console.log('check it--> delete successful');
}
// call the onLoad function for refresh the List view
this.load(component, event);
}
});
$A.enqueueAction(action);
},
Hope this helped.