I Salesforce LWC, hvis du vil la brukeren velge et alternativ fra den angitte listen over alternativer, brukes kombinasjonsboksen. I denne veiledningen vil vi diskutere hvordan du lager en kombinasjonsboks og de forskjellige attributtene som støttes av kombinasjonsboksen med eksempler.
Combobox
I utgangspunktet er combobox et skrivebeskyttet felt som gir en inngang for å velge et alternativ fra de angitte alternativene. Vi kan lage dette ved å bruke lightning-combobox-taggen. Attributtene er hastighet etter hverandre som er atskilt med mellomrom. La oss diskutere noen attributter som kreves når du oppretter en kombinasjonsboks.
- merkelapp – Dette brukes til å spesifisere etiketten (teksten) for kombinasjonsboksen.
- alternativer – Hvert alternativ tar attributtene 'label' og 'value'. Vi kan spesifisere flere alternativer i en liste atskilt med komma.
- plassholder : Før du velger et alternativ, må brukeren vite informasjonen knyttet til alternativene. Så dette attributtet er spesifisert.
- nødvendig : I noen tilfeller er det obligatorisk å velge alternativet. Vi kan gjøre det nødvendig ved å spesifisere dette attributtet.
- funksjonshemmet : Det kan være mulig å forhindre brukeren ved å velge alternativet fra avkrysningsboksen. Dette attributtet deaktiverer kombinasjonsboksen.
Syntaks:
La oss se hvordan du lager en kombinasjonsboks med noen viktige attributter.
label='label_name'
verdi={value_from_the_option}
placeholder='Hjelpetekst'
options={List_of_options}
onchange={handleChange} >
Spesifikasjon:
La oss se trinnene for å lage kombinasjonsboksen og jobbe med den.
I JavaScript-filen oppretter du en liste over alternativer med etikett og verdi inne i 'getter'-metoden.
Lag en variabel som lagrer standardalternativet.
Skriv håndtaksfunksjonen som lagrer alternativet som er valgt av brukeren fra brukergrensesnittet.
I HTML-filen oppretter du en kombinasjonsboks og sender attributtene. Vi må også sende hendelsesbehandleren onchange() som håndterer alternativene i kombinasjonsboksen. Den tar 'Handler'-funksjonen opprettet i 'js'-filen.
I alle eksemplene som vi skal diskutere i denne veiledningen, vil logikk bli gitt som 'js'-koden. Etter det spesifiserer vi skjermbildet som inkluderer hele 'js'-koden.
Eksempel 1:
Lag en kombinasjonsboks med fem emner (detaljer) i Javascript-filen. Angi standardverdien som 'JAVA'. Håndter kombinasjonsboksen i handleSubjectsOnChange()-metoden. Send verdien og detaljene til 'verdi og alternativer'-attributtene i HTML-filen med en etikett og distribuer komponenten.
firstExample.html
< div klasse = 'slds-var-m-around_medium' >
merkelapp = 'Velg ditt emne:'
verdi = { verdi }
alternativer = { detaljer }
ved endring = { handleSubjectsOnChange } >< / lyn-kombiboks>
< br >
< s > Ditt emne: < b > {verdi} < / b >< / s >
< / div >
< / lyn-kort>
< / mal>
firstExample.js
// Opprett standardverdi - 'JAVA' for kombinasjonsboksenverdi = 'JAVA' ;
// Vis fagene
få detaljer ( ) {
// 5 fag
komme tilbake [ { merkelapp : 'Java' , verdi : 'JAVA' } ,
{ merkelapp : 'Python' , verdi : 'PYTHON' } ,
{ merkelapp : 'HTML' , verdi : 'HTML' } ,
{ merkelapp : 'C' , verdi : 'C' } ,
{ merkelapp : 'C++' , verdi : 'C++' } ] ;
}
// Håndter logikk for å angi verdien
handleSubjectsOnChange ( begivenhet ) {
dette . verdi = begivenhet. detalj . verdi ;
}
}
Hele koden:
firstComponent.js-meta.xml
versjon = '1.0' ?>< / mål>
< / LightningComponentBundle>
Produksjon:
Legg til denne komponenten på 'Record'-siden til ethvert objekt. I HTML-filen viser vi verdien i avsnittskoden. Når en bruker velger et alternativ, vil det vises i fet skrift. Som standard er 'JAVA' valgt og vist etter at komponenten er gjengitt på siden.
La oss velge emnet som 'C'. 'C' returneres under kombinasjonsboksen.
Eksempel 2:
I dette eksemplet vil vi gjengi de forskjellige komponentene basert på valglisteverdiene for kampanjetype (fra kampanjeobjektet).
- Hvis kampanjetypen er 'Konferanse', vil vi gjengi malen som returnerer teksten – Kampanjestatus: PLANNET
- Hvis kampanjetypen er «Nettseminar», vil vi gjengi malen som returnerer teksten – Kampanjestatus: FERDIG
- Hvis kampanjetypen er «Partners», gjengir vi malen som returnerer teksten – Kampanjestatus: PÅGÅR
- Kampanjestatus: AVBRUTT for resten av alternativene.
secondExample.html
< div klasse = 'slds-var-m-around_medium' stil = 'høyde:20px; bredde:400px' >
alternativer = { CampaignTypeValues. data .verdier }
ved endring = { handleEndre } >
< / lyn-kombiboks>
< / mal>< br / >
< / div >
< br >< br >
< senter > Kampanjestatus: < b >< Jeg > PLANLAGT< / Jeg >< / b > < / senter >
< / mal>
= { webinarval } >
< senter > Kampanjestatus: < b >< Jeg > FERDIG< / Jeg >< / b > < / senter >
< / mal>
= { partnerval } >
< senter > Kampanjestatus: < b >< Jeg > PÅGÅR< / Jeg >< / b > < / senter >
< / mal>
< senter > Kampanjestatus: < b >< Jeg > AVBORT< / Jeg >< / b > < / senter >
< / mal>
< / lyn-kort>
< / mal>
secondExample.js
Vi importerer Campaign-objektet (Standard) som CAMPAIGN og skriver inn fra det som TYPE. Fra lightning/uiObjectInfoApi importerer vi getPicklistValues og getObjectInfo. Disse vil få valglisteverdiene som er tilgjengelige i Type-feltet. Disse vil bli brukt som alternativer for kombinasjonsboksen. Følgende håndteres i handleChange().
- Hvis verdien === “Conference”, setter vi konferanseval-variabelen til sann og de to andre som usann.
- Hvis verdien === 'Webinar', setter vi webinarval-variabelen til sann og de to andre som usann.
- Hvis verdien === “Partners”, setter vi partnerval-variabelen til sann og de to andre som usann.
- Hvis verdien ikke er i de gitte alternativene, er alle falske.
import KAMPANJE fra '@salesforce/schema/Campaign' ;
import TYPE fra '@salesforce/schema/Campaign.Type' ;
import { getPicklistValues } fra 'lightning/uiObjectInfoApi' ;
import { getObjectInfo } fra 'lightning/uiObjectInfoApi' ;
eksport misligholde klasse Andreeksempel strekker LightningElement {
@ sporverdi ;
// Hent objektet
@ metalltråd ( getObjectInfo , { objektApinavn : KAMPANJE } )
objectInfo ;
// Få Kampanjetype - Valgliste
@ metalltråd ( getPicklistValues , { recordTypeId : '$objectInfo.data.defaultRecordTypeId' , fieldApiName : TYPE } )
CampaignTypeValues ;
konferanseval = falsk ;
webinarval = falsk ;
partnerval = falsk ;
annen = falsk ;
// Håndter logikk
handleEndre ( begivenhet ) {
dette . verdi = begivenhet. mål . verdi ;
hvis ( dette . verdi === 'Konferanse' ) {
// Vis status som PLANLAGT
dette . konferanseval = ekte ;
dette . webinarval = falsk ;
dette . partnerval = falsk ;
}
ellers hvis ( dette . verdi === 'Webinarer' ) {
// Vis status som FERDIG
dette . webinarval = ekte ;
dette . konferanseval = falsk ;
dette . partnerval = falsk ;
}
ellers hvis ( dette . verdi === 'Partnere' ) {
// Vis status som PÅGÅR
dette . webinarval = falsk ;
dette . konferanseval = falsk ;
dette . partnerval = ekte ;
}
ellers {
// Vis status som IN AVBORT
dette . webinarval = falsk ;
dette . konferanseval = falsk ;
dette . partnerval = falsk ;
}
}
}
secondComponent.js-meta.xml
versjon = '1.0' ?>< / mål>
< / LightningComponentBundle>
Produksjon:
Type - 'Konferanse'. Så, statusen er 'PLANLEGGERT'.
Skriv - 'Webinar'. Så, statusen er 'FERDIG'.
Type – “Partners”. Så, statusen er 'PÅGÅR'.
Typen er ikke i de angitte alternativene. Så, statusen er 'AVBORT'.
Eksempel 3:
Nå lager vi en kombinasjonsboks med kampanjepostene som alternativer. Hvis vi velger et alternativ, vil den tilsvarende kampanjetypen bli returnert i brukergrensesnittet.
Først må vi lage en Apex-klasse med getCampaign()-metoden. Denne metoden returnerer en liste over alle kampanjer med id, navn, type og status.
Campaign Records. apxcoffentlig med deling klasse Campaign Records {
@ AuraAktivert ( cachebar = ekte )
// Få listen over kampanjer
offentlig statisk Liste < Kampanje > getCampaign ( ) {
komme tilbake [ VELG ID , Navn , Type , Status fra kampanje ] ;
}
}
tredjeEksempel.html
< div klasse = 'slds-var-m-around_medium' stil = 'høyde:20px; bredde:400px' >
merkelapp = 'Velg kampanjenavn'
alternativer = { Kampanjealternativer }
verdi = { verdi }
ved endring = { håndtere på endring }
>
< / lyn-kombiboks>
< / div >< br >
< br >
< s > Kampanjetype for denne kampanjen: < b > {verdi} < / b >< / s >
< / lyn-kort>
< / mal>
thirdExample.js
- Vi må spesifisere metoden som får en liste over kampanjer i connectedcallback()-metoden. Deklarer en matrise kalt 'camps' og lagre resultatet med etiketten som kampanje-ID og verdien som kampanjetype. Denne matrisen er input til kampanjenavnene (dette må opprettes med spordekoratoren).
- I gettermetoden Campaignoptions() returnerer du arrayen campaignNames. Så, combobox bruker disse alternativene.
- Angi den valgte verdien i handleonchange()-behandlingsmetoden.
import getCampaign fra '@salesforce/apex/CampaignRecords.getCampaign' ;
eksport misligholde klasse Tredjeeksempel strekker LightningElement {
verdi = '' ;
@ spor kampanjenavn = [ ] ;
få Kampanjealternativer ( ) {
komme tilbake dette . kampanjenavn ;
}
// Legg til alternativene til camps-arrayet fra Apex.
//-etiketten vil være kampanjenavnet
//-verdien vil være kampanjetypen
tilkoblet Tilbakeringing ( ) {
getCampaign ( )
. deretter ( resultat => {
la leire = [ ] ;
til ( var k = 0 ; k < resultat. lengde ; k ++ ) {
leirer. trykk ( { merkelapp : resultat [ k ] . Navn , verdi : resultat [ k ] . Type } ) ;
}
dette . kampanjenavn = leirer ;
} )
}
// Håndter verdien
håndtere på endring ( begivenhet ) {
dette . verdi = begivenhet. detalj . verdi ;
}
}
Produksjon:
La oss velge posten og se typen.
Konklusjon
Vi lærte hvordan man lager en kombinasjonsboks i LWC med attributter og eksempler. Først opprettet vi en kombinasjonsboks med en liste over verdier og viste den valgte verdien. Deretter gjengir vi HTML-malen basert på den valgte verdien gjennom den betingede gjengivelsen. Til slutt lærte vi hvordan du oppretter alternativene for kombinasjonsboksen fra de eksisterende Salesforce-postene og viser de relaterte feltene i brukergrensesnittet.