I Salesforce LWC, hvis du vil tillade brugeren at vælge en indstilling fra den angivne liste over muligheder, bruges kombinationsboks. I denne guide vil vi diskutere, hvordan man opretter en combobox og de forskellige attributter, der understøttes af combobox med eksempler.
Kombinationsfelt
Grundlæggende er combobox et skrivebeskyttet felt, som giver et input til at vælge en indstilling fra de angivne muligheder. Vi kan oprette dette ved hjælp af lightning-combobox-tagget. Attributterne er hastighed efter hinanden, som er adskilt af mellemrum. Lad os diskutere nogle attributter, der kræves, mens du opretter en kombinationsboks.
- etiket – Dette bruges til at angive etiketten (teksten) for din kombinationsboks.
- muligheder – Hver mulighed tager attributterne 'label' og 'value'. Vi kan angive de flere muligheder i en liste adskilt med komma.
- pladsholder : Før du vælger en mulighed, skal brugeren kende de oplysninger, der er relateret til muligheder. Så denne attribut er specificeret.
- påkrævet : I nogle tilfælde er det obligatorisk at vælge muligheden. Vi kan gøre det påkrævet ved at angive denne attribut.
- handicappet : Det kan være muligt at forhindre brugeren ved at vælge indstillingen fra afkrydsningsfeltet. Denne egenskab deaktiverer kombinationsboksen.
Syntaks:
Lad os se, hvordan du opretter en kombinationsboks med nogle vigtige egenskaber.
label='label_name'
værdi={value_from_the_option}
placeholder='Hjælpetekst'
optioner={List_of_options}
onchange={handleChange} >
Specifikation:
Lad os se trinene til at oprette kombinationsboksen og arbejde med den.
I JavaScript-filen skal du oprette en liste over muligheder med etiket og værdi inde i 'getter'-metoden.
Opret en variabel, der gemmer standardindstillingen.
Skriv håndtag-funktionen, der gemmer den indstilling, som er valgt af brugeren fra brugergrænsefladen.
I HTML-filen skal du oprette en kombinationsboks og videregive attributterne. Vi skal også videregive hændelseshandleren onchange(), der håndterer mulighederne i kombinationsboksen. Det tager 'Handler'-funktionen oprettet i 'js'-filen.
I alle de eksempler, som vi vil diskutere i denne vejledning, vil logik blive leveret som 'js'-koden. Derefter angiver vi skærmbilledet, der inkluderer hele 'js'-koden.
Eksempel 1:
Opret en kombinationsboks med fem emner (detaljer) i Javascript-filen. Angiv standardværdien som 'JAVA'. Håndter kombinationsboksen i handleSubjectsOnChange()-metoden. Send værdien og detaljerne til attributterne 'værdi og muligheder' i HTML-filen med en etiket, og implementer komponenten.
firstExample.html
< div klasse = 'slds-var-m-around_medium' >
etiket = 'Vælg dit emne:'
værdi = { værdi }
muligheder = { detaljer }
ved ændring = { håndtereSubjectsOnChange } >< / lyn-kombiboks>
< br >
< s > Dit emne: < b > {værdi} < / b >< / s >
< / div >
< / lyn-kort>
< / skabelon>
firstExample.js
// Opret standardværdi - 'JAVA' for Comboboxværdi = 'JAVA' ;
// Vis emnerne
få detaljer ( ) {
// 5 fag
Vend tilbage [ { etiket : 'Java' , værdi : 'JAVA' } ,
{ etiket : 'Python' , værdi : 'PYTHON' } ,
{ etiket : 'HTML' , værdi : 'HTML' } ,
{ etiket : 'C' , værdi : 'C' } ,
{ etiket : 'C++' , værdi : 'C++' } ] ;
}
// Håndter logik for at indstille værdien
håndtereSubjectsOnChange ( begivenhed ) {
det her . værdi = begivenhed. detalje . værdi ;
}
}
Hele koden:
firstComponent.js-meta.xml
version = '1.0' ?>< / mål>
< / LightningComponentBundle>
Produktion:
Tilføj denne komponent til 'Record'-siden for ethvert objekt. I HTML-filen viser vi værdien i afsnits-tagget. Når en bruger vælger en valgmulighed, vil den blive vist som fed. Som standard er 'JAVA' valgt og vist, efter at komponenten er gengivet på siden.
Lad os vælge emnet som 'C'. 'C' returneres under kombinationsboksen.
Eksempel 2:
I dette eksempel vil vi gengive de forskellige komponenter baseret på kampagnetype-pluklisteværdierne (fra kampagneobjektet).
- Hvis kampagnetypen er 'Konference', gengiver vi skabelonen, der returnerer teksten – Kampagnestatus: PLANLAGT
- Hvis kampagnetypen er 'Webinar', gengiver vi skabelonen, der returnerer teksten – Kampagnestatus: UDFØRT
- Hvis kampagnetypen er 'Partners', gengiver vi skabelonen, der returnerer teksten – Kampagnestatus: I GANG
- Kampagnestatus: AFBRUDT for resten af mulighederne.
secondExample.html
< div klasse = 'slds-var-m-around_medium' stil = 'højde:20px; bredde:400px' >
=
muligheder = { CampaignTypeValues. data .værdier }
ved ændring = { håndtag Skift } >
< / lyn-kombiboks>
< / skabelon>< br / >
< / div >
< br >< br >
= { konferenceval } >
< centrum > Kampagnestatus: < b >< jeg > PLANLAGT< / jeg >< / b > < / centrum >
< / skabelon>
= { webinarval } >
< centrum > Kampagnestatus: < b >< jeg > UDFØRT< / jeg >< / b > < / centrum >
< / skabelon>
= { partnerval } >
< centrum > Kampagnestatus: < b >< jeg > I GANG< / jeg >< / b > < / centrum >
< / skabelon>
< centrum > Kampagnestatus: < b >< jeg > AFBORTET< / jeg >< / b > < / centrum >
< / skabelon>
< / lyn-kort>
< / skabelon>
secondExample.js
Vi importerer kampagneobjektet (Standard) som KAMPAGNE og skriver fra det som TYPE. Fra lightning/uiObjectInfoApi importerer vi getPicklistValues og getObjectInfo. Disse vil få de tilgængelige pluklisteværdier i feltet Type. Disse vil blive brugt som muligheder for kombinationsboksen. Følgende håndteres i handleChange().
- Hvis værdien === 'Konference', sætter vi konferenceval-variablen til sand og de to andre som falsk.
- Hvis værdien === 'Webinar', sætter vi webinarval-variablen til sand og de to andre som falsk.
- Hvis værdien === 'Partners', sætter vi partnerval-variablen til sand og de to andre som falsk.
- Hvis værdien ikke er i de givne muligheder, er alle falske.
importere KAMPAGNE fra '@salesforce/schema/Campaign' ;
importere TYPE fra '@salesforce/schema/Campaign.Type' ;
importere { getPicklistValues } fra 'lightning/uiObjectInfoApi' ;
importere { getObjectInfo } fra 'lightning/uiObjectInfoApi' ;
eksport Standard klasse Andeteksempel strækker sig LightningElement {
@ sporværdi ;
// Hent objektet
@ tråd ( getObjectInfo , { objektApinavn : KAMPAGNE } )
objektInfo ;
// Hent kampagnetypen - plukliste
@ tråd ( getPicklistValues , { recordTypeId : '$objectInfo.data.defaultRecordTypeId' , fieldApiName : TYPE } )
CampaignTypeValues ;
konferenceval = falsk ;
webinarval = falsk ;
partnerval = falsk ;
Andet = falsk ;
// Håndter logik
håndtag Skift ( begivenhed ) {
det her . værdi = begivenhed. mål . værdi ;
hvis ( det her . værdi === 'Konference' ) {
// Vis status som PLANLAGT
det her . konferenceval = rigtigt ;
det her . webinarval = falsk ;
det her . partnerval = falsk ;
}
andet hvis ( det her . værdi === 'Webinarer' ) {
// Vis status som UDFØRT
det her . webinarval = rigtigt ;
det her . konferenceval = falsk ;
det her . partnerval = falsk ;
}
andet hvis ( det her . værdi === 'Partnere' ) {
// Vis status som I GANG
det her . webinarval = falsk ;
det her . konferenceval = falsk ;
det her . partnerval = rigtigt ;
}
andet {
// Vis status som IN ABUORTED
det her . webinarval = falsk ;
det her . konferenceval = falsk ;
det her . partnerval = falsk ;
}
}
}
secondComponent.js-meta.xml
version = '1.0' ?>< / mål>
< / LightningComponentBundle>
Produktion:
Type - 'Konference'. Så status er 'PLANLAGT'.
Skriv - 'Webinar'. Så status er 'FULDFØRT'.
Skriv – 'Partners'. Så status er 'I GANG'.
Typen er ikke i de angivne muligheder. Så status er 'AFBRUDT'.
Eksempel 3:
Nu opretter vi en kombinationsboks med kampagneregistreringer som muligheder. Hvis vi vælger en valgmulighed, vil den tilsvarende kampagnetype blive returneret på brugergrænsefladen.
Først skal vi oprette en Apex-klasse med getCampaign()-metoden. Denne metode returnerer en liste over alle kampagner med id, navn, type og status.
Campaign Records. apxcoffentlig med deling klasse Campaign Records {
@ AuraAktiveret ( cachebar = rigtigt )
// Få listen over kampagner
offentlig statisk Liste < Kampagne > getCampaign ( ) {
Vend tilbage [ VÆLG ID , Navn , Type , Status fra kampagne ] ;
}
}
tredjeEksempel.html
< div klasse = 'slds-var-m-around_medium' stil = 'højde:20px; bredde:400px' >
etiket = 'Vælg kampagnenavn'
muligheder = { Kampagnemuligheder }
værdi = { værdi }
ved ændring = { håndtere skift }
>
< / lyn-kombiboks>
< / div >< br >
< br >
< s > Kampagnetype for denne kampagne: < b > {værdi} < / b >< / s >
< / lyn-kort>
< / skabelon>
tredjeEksempel.js
- Vi er nødt til at specificere metoden, der får en liste over kampagner inde i connectedcallback() metoden. Deklarer et array med navnet 'lejre', og gem resultatet med etiketten som kampagne-id og værdien som kampagnetype. Dette array er input til kampagnenavnene (dette skal oprettes med banedekoratoren).
- I gettermetoden Campaignoptions() skal du returnere arrayet campaignNames. Så combobox bruger disse muligheder.
- Indstil den valgte værdi i handleonchange()-håndteringsmetoden.
importere getCampaign fra '@salesforce/apex/CampaignRecords.getCampaign' ;
eksport Standard klasse Tredjeeksempel strækker sig LightningElement {
værdi = '' ;
@ spore kampagnenavne = [ ] ;
få Kampagnemuligheder ( ) {
Vend tilbage det her . kampagnenavne ;
}
// Tilføj mulighederne til camps-arrayet fra Apex.
// etiket vil være kampagnenavnet
// værdi vil være kampagnetypen
tilsluttet Tilbagekald ( ) {
getCampaign ( )
. derefter ( resultat => {
lade lejre = [ ] ;
til ( var k = 0 ; k < resultat. længde ; k ++ ) {
lejre. skubbe ( { etiket : resultat [ k ] . Navn , værdi : resultat [ k ] . Type } ) ;
}
det her . kampagnenavne = lejre ;
} )
}
// Håndter værdien
håndtere skift ( begivenhed ) {
det her . værdi = begivenhed. detalje . værdi ;
}
}
Produktion:
Lad os vælge posten og se typen.
Konklusion
Vi lærte, hvordan man laver en kombinationsboks i LWC med attributter og eksempler. Først oprettede vi en kombinationsboks med en liste over værdier og viste den valgte værdi. Dernæst gengiver vi HTML-skabelonen baseret på den valgte værdi gennem den betingede gengivelse. Til sidst lærte vi, hvordan man opretter mulighederne for kombinationsboksen fra de eksisterende Salesforce-poster og viser de relaterede felter på brugergrænsefladen.