I Salesforce LWC, om du vill tillåta användaren att välja ett alternativ från den angivna listan med alternativ, används combobox. I den här guiden kommer vi att diskutera hur man skapar en combobox och de olika attribut som stöds av combobox med exempel.
Kombinationsrutan
I grund och botten är combobox ett skrivskyddat fält som ger en ingång för att välja ett alternativ från de angivna alternativen. Vi kan skapa detta med lightning-combobox-taggen. Attributen är hastighet efter varandra som är åtskilda av mellanslag. Låt oss diskutera några attribut som krävs när du skapar en kombinationsruta.
- märka – Detta används för att ange etiketten (texten) för din kombinationsruta.
- alternativ – Varje alternativ har attributen 'label' och 'value'. Vi kan specificera flera alternativ i en lista separerad med kommatecken.
- Platshållare : Innan du väljer ett alternativ måste användaren känna till informationen om alternativen. Så detta attribut är specificerat.
- nödvändig : I vissa fall är det obligatoriskt att välja alternativet. Vi kan göra det obligatoriskt genom att ange detta attribut.
- Inaktiverad : Det kan vara möjligt att förhindra användaren genom att markera alternativet i kryssrutan. Det här attributet inaktiverar kombinationsrutan.
Syntax:
Låt oss se hur du skapar en kombinationslåda med några viktiga attribut.
label='label_name'
värde={value_from_the_option}
placeholder='Hjälptext'
options={List_of_options}
onchange={handleChange} >
Specifikation:
Låt oss se stegen för att skapa kombinationsrutan och arbeta med den.
Skapa en lista med alternativ i JavaScript-filen med etikett och värde i 'getter'-metoden.
Skapa en variabel som lagrar standardalternativet.
Skriv handtagsfunktionen som lagrar alternativet som väljs av användaren från användargränssnittet.
Skapa en kombinationsruta i HTML-filen och skicka attributen. Dessutom måste vi skicka händelsehanteraren onchange() som hanterar alternativen i kombinationsrutan. Det tar 'Handler'-funktionen skapad i 'js'-filen.
I alla exempel som vi kommer att diskutera i den här guiden kommer logik att tillhandahållas som 'js'-koden. Efter det anger vi skärmdumpen som innehåller hela 'js'-koden.
Exempel 1:
Skapa en kombinationsruta med fem ämnen (detaljer) i Javascript-filen. Ange standardvärdet som 'JAVA'. Hantera kombinationsrutan i metoden handleSubjectsOnChange(). Skicka värdet och detaljerna till attributen 'värde och alternativ' i HTML-filen med en etikett och distribuera komponenten.
firstExample.html
< div klass = 'slds-var-m-around_medium' >
märka = 'Välj ditt ämne:'
värde = { värde }
alternativ = { detaljer }
vid förändring = { hanteraSubjectsOnChange } >< / lightning-combobox>
< br >
< sid > Ditt ämne: < b > {värde} < / b >< / sid >
< / div >
< / blixtkort>
< / mall>
firstExample.js
// Skapa standardvärde - 'JAVA' för kombinationsrutanvärde = 'JAVA' ;
// Visa ämnena
skaffa sig detaljer ( ) {
// 5 ämnen
lämna tillbaka [ { märka : 'Java' , värde : 'JAVA' } ,
{ märka : 'Pytonorm' , värde : 'PYTONORM' } ,
{ märka : 'HTML' , värde : 'HTML' } ,
{ märka : 'C' , värde : 'C' } ,
{ märka : 'C++' , värde : 'C++' } ] ;
}
// Hantera logik för att ställa in värdet
hanteraSubjectsOnChange ( händelse ) {
detta . värde = händelse. detalj . värde ;
}
}
Hela koden:
firstComponent.js-meta.xml
version = '1.0' ?>< / mål>
< / LightningComponentBundle>
Produktion:
Lägg till den här komponenten på 'Record'-sidan för ett objekt. I HTML-filen visar vi värdet i paragraftaggen. När en användare väljer något alternativ visas det i fet stil. Som standard väljs 'JAVA' och visas efter att komponenten har renderats på sidan.
Låt oss välja ämnet som 'C'. 'C' returneras under kombinationsrutan.
Exempel 2:
I det här exemplet kommer vi att återge de olika komponenterna baserat på vallistan för kampanjtyp (från kampanjobjektet).
- Om kampanjtypen är 'Konferens' återger vi mallen som returnerar texten – Kampanjstatus: PLANERAD
- Om kampanjtypen är 'Webinar' återger vi mallen som returnerar texten – Kampanjstatus: COMPLETED
- Om kampanjtypen är 'Partners' återger vi mallen som returnerar texten – Kampanjstatus: PÅGÅR
- Kampanjstatus: AVBRUTEN för resten av alternativen.
secondExample.html
< div klass = 'slds-var-m-around_medium' stil = 'höjd:20px; bredd:400px' >
=
alternativ = { CampaignTypeValues. data .värden }
vid förändring = { handtag Ändra } >
< / lightning-combobox>
< / mall>< br / >
< / div >
< br >< br >
= { konferensval } >
< Centrum > Kampanjstatus: < b >< i > PLANERAD< / i >< / b > < / Centrum >
< / mall>
= { webinarval } >
< Centrum > Kampanjstatus: < b >< i > AVSLUTAD< / i >< / b > < / Centrum >
< / mall>
= { partnerval } >
< Centrum > Kampanjstatus: < b >< i > PÅGÅR< / i >< / b > < / Centrum >
< / mall>
< Centrum > Kampanjstatus: < b >< i > AVBORT< / i >< / b > < / Centrum >
< / mall>
< / blixtkort>
< / mall>
secondExample.js
Vi importerar Campaign-objektet (Standard) som CAMPAIGN och skriver från det som TYPE. Från lightning/uiObjectInfoApi importerar vi getPicklistValues och getObjectInfo. Dessa kommer att få de plocklistvärden som är tillgängliga i fältet Typ. Dessa kommer att användas som alternativ för kombinationsrutan. Följande hanteras i handleChange().
- Om värdet === 'Conference' ställer vi in konferensvalvariabeln till true och de andra två som falska.
- Om värdet === 'Webinar' ställer vi in webinarval-variabeln till true och de andra två som falska.
- Om värdet === 'Partners' ställer vi in partnervalvariabeln till true och de andra två som falska.
- Om värdet inte finns i de givna alternativen är alla falska.
importera KAMPANJ från '@salesforce/schema/Campaign' ;
importera TYP från '@salesforce/schema/Campaign.Type' ;
importera { getPicklistValues } från 'lightning/uiObjectInfoApi' ;
importera { getObjectInfo } från 'lightning/uiObjectInfoApi' ;
exportera standard klass Andra exemplet sträcker sig LightningElement {
@ spårvärde ;
// Hämta objektet
@ tråd ( getObjectInfo , { objektApinamn : KAMPANJ } )
objectInfo ;
// Hämta kampanjtyp - vallista
@ tråd ( getPicklistValues , { recordTypeId : '$objectInfo.data.defaultRecordTypeId' , fieldApiName : TYP } )
CampaignTypeValues ;
konferensval = falsk ;
webinarval = falsk ;
partnerval = falsk ;
Övrig = falsk ;
// Hantera logik
handtag Ändra ( händelse ) {
detta . värde = händelse. mål . värde ;
om ( detta . värde === 'Konferens' ) {
// Visa status som PLANERAD
detta . konferensval = Sann ;
detta . webinarval = falsk ;
detta . partnerval = falsk ;
}
annan om ( detta . värde === 'Webinar' ) {
// Visa status som AVSLUTAD
detta . webinarval = Sann ;
detta . konferensval = falsk ;
detta . partnerval = falsk ;
}
annan om ( detta . värde === 'Partners' ) {
// Visa status som PÅGÅR
detta . webinarval = falsk ;
detta . konferensval = falsk ;
detta . partnerval = Sann ;
}
annan {
// Visa status som IN AVBORT
detta . webinarval = falsk ;
detta . konferensval = falsk ;
detta . partnerval = falsk ;
}
}
}
secondComponent.js-meta.xml
version = '1.0' ?>< / mål>
< / LightningComponentBundle>
Produktion:
Typ – 'Konferens'. Så, statusen är 'PLANERAD'.
Typ - 'Webinar'. Så, statusen är 'SLUTAD'.
Typ - 'Partners'. Så, statusen är 'PÅGÅR'.
Typen finns inte i de angivna alternativen. Så, statusen är 'ABORTED'.
Exempel 3:
Nu skapar vi en kombinationsruta med kampanjposterna som alternativ. Om vi väljer något alternativ kommer motsvarande kampanjtyp att returneras i användargränssnittet.
Först måste vi skapa en Apex-klass med getCampaign()-metoden. Den här metoden returnerar en lista över alla kampanjer med id, namn, typ och status.
Campaign Records. apxcoffentligt med delning klass Campaign Records {
@ AuraEnabled ( cachebart = Sann )
// Få listan över kampanjer
offentlig statisk Lista < Kampanj > getCampaign ( ) {
lämna tillbaka [ VÄLJ ID , namn , Typ , Status från kampanj ] ;
}
}
tredjeExempel.html
< div klass = 'slds-var-m-around_medium' stil = 'höjd:20px; bredd:400px' >
märka = 'Välj kampanjnamn'
alternativ = { Kampanjalternativ }
värde = { värde }
vid förändring = { hantera byte }
>
< / lightning-combobox>
< / div >< br >
< br >
< sid > Kampanjtyp för denna kampanj: < b > {värde} < / b >< / sid >
< / blixtkort>
< / mall>
tredjeExempel.js
- Vi måste specificera metoden som får en lista över kampanjer i metoden connectedcallback(). Deklarera en array med namnet 'camps' och lagra resultatet med etiketten som Kampanj-ID och värdet som Kampanjtyp. Denna array är indata till kampanjens namn (detta måste skapas med spårdekoratören).
- I gettermetoden Campaignoptions() returnerar du arrayen campaignNames. Så, combobox använder dessa alternativ.
- Ställ in det valda värdet i hanterarmetoden handleonchange().
importera getCampaign från '@salesforce/apex/CampaignRecords.getCampaign' ;
exportera standard klass Tredjeexempel sträcker sig LightningElement {
värde = '' ;
@ spåra kampanjnamn = [ ] ;
skaffa sig Kampanjalternativ ( ) {
lämna tillbaka detta . kampanjnamn ;
}
// Lägg till alternativen till lägeruppsättningen från Apex.
// etiketten kommer att vara kampanjnamnet
//-värdet kommer att vara kampanjtypen
ansluten Återuppringning ( ) {
getCampaign ( )
. sedan ( resultat => {
låt läger = [ ] ;
för ( var k = 0 ; k < resultat. längd ; k ++ ) {
läger. skjuta på ( { märka : resultat [ k ] . namn , värde : resultat [ k ] . Typ } ) ;
}
detta . kampanjnamn = läger ;
} )
}
// Hantera värdet
hantera byte ( händelse ) {
detta . värde = händelse. detalj . värde ;
}
}
Produktion:
Låt oss välja posten och se typen.
Slutsats
Vi lärde oss hur man skapar en combobox i LWC med attribut och exempel. Först skapade vi en kombinationsruta med en lista med värden och visade det valda värdet. Därefter renderar vi HTML-mallen baserat på det valda värdet genom den villkorliga renderingen. Slutligen lärde vi oss hur man skapar alternativen för kombinationsrutan från de befintliga Salesforce-posterna och visar de relaterade fälten i användargränssnittet.