Как я могу добавить строки или удалить строку динамически в таблице данных Lightening - PullRequest
0 голосов
/ 20 марта 2020
    //component
<aura:component controller="LookupRelatedContactC"
                implements="force:appHostable,flexipage:availableForAllPageTypes,flexipage:availableForRecordHome,force:hasRecordId,forceCommunity:availableForAllPageTypes,force:lightningQuickAction" access="global" >

    <aura:attribute name="selectedLookUpRecord" type="sObject" default="{}"/>
    <aura:attribute name="data" type="Object"/>
    <aura:attribute name="columns" type="List"/>
    <aura:attribute name="selectedRows" type="List"/>
    <aura:attribute name="rowIndex" type="String"/>
    <aura:attribute name="options" type="List" default="[
     {'label': 'Contacts', 'value': 'option1'},
     {'label': 'Opportunities', 'value': 'option2'}]"/>
    <aura:attribute name="value" type="String" default="option1"/>

    <aura:handler name="change" value="{!v.selectedLookUpRecord}" action="{!c.selectedLookupChanged}"/>
    <lightning:card title = 'Search by Account Name' >
        <c:LookupReusable_Parent objectAPIName="account" IconName="standard:account"
                                 selectedRecord="{!v.selectedLookUpRecord}"
                                 label="Accounts"/>
        <lightning:radioGroup name="radioGroup"
                              label="Select any one of these"
                              options="{! v.options }"
                              value="{! v.value }"
                              type="radio"/>
        <br/><br/>
        <lightning:datatable columns="{! v.columns }"
                             data="{! v.data }"
                             keyField="id"
                             hideCheckboxColumn="true"
                             onrowaction="{!c.removeRecord}"/><br></br>
        <lightning:button variant="brand" label="Save" title="Brand action" onclick="{! c.handleClick}" />
        <lightning:button variant="brand" label="Add Row" title="Brand action" onclick="{! c.handleClick}" />
    </lightning:card>
</aura:component>

//js controller
({ 
    selectedLookupChanged:function(component, event, helper) { 

        component.set('v.columns', [
            {label: 'Contact Name', 
             fieldName: 'Name', 
             editable: true, 
             type: 'text'},
            {label: 'Phone', 
             fieldName: 'Phone',
             type: 'phone'},
            {label: "Action",type: "button", typeAttributes: {
                label: 'Delete',
                name: 'delete',
                title: 'Delete',
                disabled: false,
                value: 'delete',
                iconPosition: 'left'  
            }},
        ]);
            var aId = component.get("v.selectedLookUpRecord").Id;
            var action=component.get('c.getCon');
            action.setParams({accId : aId});
            action.setCallback(this, function(response){
            var state = response.getState();
            if (state === "SUCCESS") {
            var rows1 = response.getReturnValue();
            component.set("v.data", rows1);
            }
            });
            $A.enqueueAction(action);
            }
})

//apex class
public class LookupRelatedContactC {
    @AuraEnabled
    public static List<Contact> getCon(List<String> accId) {
        return [SELECT Id, Name, Phone FROM Contact WHERE AccountId =:accId];
    }
}

В приведенном выше коде я застрял в точке, где я не могу динамически добавлять строки или удалять какие-либо строки в таблице данных молнии, что я нашел в inte rnet в основном людей, с которыми я работал это аура итерации, но не с таблицей данных. Поэтому, когда я нажимаю на кнопку удаления, она должна запускать событие js или когда я добавляю строку, тогда она должна запускать js Я не хочу снова и снова вызывать метод на стороне сервера для добавления или удаления. Итак, после того, как я закончил работу со строкой удаления или добавления, после нажатия кнопки «Сохранить» он должен запустить метод на стороне сервера один раз и сохранить в базе данных. Помогите

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...