LWC – Combobox

Lwc Combobox



W Salesforce LWC, jeśli chcesz pozwolić użytkownikowi wybrać opcję z określonej listy opcji, używany jest combobox. W tym przewodniku omówimy, wraz z przykładami, jak utworzyć combobox i różne atrybuty obsługiwane przez combobox.

Combobox

Zasadniczo combobox jest polem tylko do odczytu, które dostarcza danych wejściowych umożliwiających wybranie opcji spośród określonych opcji. Możemy to utworzyć za pomocą tagu Lightning-combobox. Atrybuty to prędkość jedna po drugiej, oddzielona spacją. Omówmy niektóre atrybuty wymagane podczas tworzenia comboboxa.







  1. etykieta – Służy do określenia etykiety (tekstu) dla twojego comboboxa.
  2. opcje – Każda opcja przyjmuje atrybuty „etykieta” i „wartość”. Możemy określić wiele opcji na liście oddzielonych przecinkami.
[ { etykieta: etykieta1, wartość: wartość1 }, ,,,];
  1. symbol zastępczy : Przed wybraniem opcji użytkownik musi zapoznać się z informacjami dotyczącymi opcji. Zatem ten atrybut jest określony.
  2. wymagany : W niektórych przypadkach wybranie tej opcji jest obowiązkowe. Możemy uczynić to wymaganym, określając ten atrybut.
  3. wyłączony : Możliwe jest zablokowanie użytkownika poprzez wybranie opcji z pola wyboru. Ten atrybut wyłącza combobox.

Składnia:

Zobaczmy, jak utworzyć combobox z kilkoma ważnymi atrybutami.




nazwa='nazwa'

etykieta='nazwa_etykiety'

wartość={wartość_z_opcji}

placeholder='Tekst pomocy'

opcje={Lista_opcji}

onchange={handleChange} >

Specyfikacja:

Zobaczmy, jak utworzyć combobox i pracować z nim.



W pliku JavaScript utwórz listę opcji z etykietą i wartością wewnątrz metody „getter”.





Utwórz zmienną przechowującą opcję domyślną.



Napisz funkcję uchwytu przechowującą opcję wybraną przez użytkownika z interfejsu użytkownika.

W pliku HTML utwórz combobox i przekaż atrybuty. Musimy także przekazać procedurę obsługi zdarzeń onchange(), która obsługuje opcje w comboboxie. Pobiera funkcję „Handler” utworzoną w pliku „js”.

We wszystkich przykładach, które omówimy w tym przewodniku, logika będzie dostarczana w postaci kodu „js”. Następnie podajemy zrzut ekranu zawierający cały kod „js”.

Przykład 1:

Utwórz combobox z pięcioma tematami (szczegółami) w pliku JavaScript. Określ wartość domyślną jako „JAVA”. Obsługuj combobox w metodzie handleSubjectsOnChange(). Przekaż wartość i szczegóły do ​​atrybutów „wartość i opcje” w pliku HTML z etykietą i wdróż komponent.

pierwszyPrzykład.html



tytuł = „Połączenie tematów” >

< div klasa = „slds-var-m-around_medium” >



etykieta = „Wybierz temat:”

wartość = { wartość }

opcje = { Detale }

na zmianę = { handleSubjectsOnChange } >< / błyskawica-combobox>

< br >

< P > Twój temat: < B > {wartość} < / B >< / P >

< / div >

< / karta-błyskawica>

< / szablon>

pierwszyPrzykład.js

// Utwórz wartość domyślną - „JAVA” dla Comboboxa
wartość = 'JAWA' ;


// Pokaż tematy
Dostawać Detale ( ) {
// 5 przedmiotów
powrót [ { etykieta : 'Jawa' , wartość : 'JAWA' } ,
{ etykieta : 'Pyton' , wartość : 'PYTON' } ,
{ etykieta : „HTML” , wartość : „HTML” } ,
{ etykieta : 'C' , wartość : 'C' } ,
{ etykieta : „C++” , wartość : „C++” } ] ;
}

// Obsługuj logikę, aby ustawić wartość
handleSubjectsOnChange ( wydarzenie ) {
Ten . wartość = wydarzenie. Szczegół . wartość ;
}
}

Cały kod:

pierwszyKomponent.js-meta.xml

wersja = „1,0” ?>


= „http://soap.sforce.com/2006/04/metadata” >


57,0 < / wersja api>

PRAWDA < / jest odsłonięty>



błyskawica__AppPage < / cel>

błyskawica__RecordPage < / cel>

< / cele>

< / Pakiet LightningComponent>

Wyjście:

Dodaj ten komponent do strony „Rekord” dowolnego obiektu. W pliku HTML wyświetlamy wartość w znaczniku akapitu. Gdy użytkownik wybierze dowolną opcję, zostanie ona wyświetlona pogrubioną czcionką. Domyślnie wybrana jest opcja „JAVA” i wyświetlana po wyrenderowaniu komponentu na stronie.

Wybierzmy temat jako „C”. „C” jest zwracane pod comboboxem.

Przykład 2:

W tym przykładzie wyrenderujemy różne komponenty w oparciu o wartości listy wyboru typu kampanii (z obiektu Kampania).

  1. Jeśli typ kampanii to „Konferencja”, wyrenderujemy szablon, który zwróci tekst – Status kampanii:   PLANOWANE
  2. Jeśli typ kampanii to „Webinarium”, wyrenderujemy szablon, który zwróci tekst – Status kampanii:   ZAKOŃCZONO
  3. Jeśli typ kampanii to „Partnerzy”, wyrenderujemy szablon, który zwróci tekst – Status kampanii:   W TOKU
  4. Stan kampanii:  PRZERWA dla pozostałych opcji.

drugiPrzykład.html



tytuł
= „TYP KAMPANII” Ikona- nazwa = „standard:kampania” >

< div klasa = „slds-var-m-around_medium” styl = „wysokość: 20 pikseli; szerokość: 400 pikseli” >

=
{ Wartości typu kampanii. dane } >

wartość = { wartość }

opcje = { Wartości typu kampanii. dane .wartości }

na zmianę = { uchwytZmień } >

< / błyskawica-combobox>

< / szablon>< br / >

< / div >

< br >< br >

= { konferencja } >

< Centrum > Stan kampanii:   < B >< I > PLANOWANE< / I >< / B > < / Centrum >

< / szablon>

= { webinarium } >

< Centrum > Stan kampanii:   < B >< I > UKOŃCZONO< / I >< / B > < / Centrum >

< / szablon>

= { partnerstwo } >

< Centrum > Stan kampanii:   < B >< I > W TRAKCIE< / I >< / B > < / Centrum >

< / szablon>



< Centrum > Stan kampanii:   < B >< I > PRZERWANE< / I >< / B > < / Centrum >

< / szablon>

< / karta-błyskawica>

< / szablon>

drugiPrzykład.js

Importujemy obiekt Kampanii (Standard) jako CAMPAIGN i Type z niego jako TYPE. Z Lightning/uiObjectInfoApi importujemy getPicklistValues ​​i getObjectInfo. Otrzymają one wartości listy wyboru dostępne w polu Typ. Zostaną one wykorzystane jako opcje dla comboboxa. Poniższe elementy są obsługiwane w handleChange().

  1. Jeśli wartość === „Konferencja”, ustawiamy zmienną Conferenceval na true, a pozostałe dwie na false.
  2. Jeżeli wartość === „Webinar”, ustawiamy zmienną webinarval na true, a pozostałe dwie na false.
  3. Jeśli wartość === „Partnerzy”, ustawiamy zmienną partnersval na true, a pozostałe dwie na false.
  4. Jeśli wartości nie ma w podanych opcjach, wszystkie mają wartość false.
import { Element Błyskawicy , ścieżka , drut , API } z 'szczęście' ;

import KAMPANIA od „@salesforce/schemat/kampania” ;

import TYP od „@salesforce/schema/typ kampanii” ;

import { pobierzPicklistValues } z „błyskawica/uiObjectInfoApi” ;

import { pobierzInformacje o obiekcie } z „błyskawica/uiObjectInfoApi” ;

eksport domyślny klasa Drugi przykład rozciąga się Element Błyskawicy {

@ wartość śledzenia ;

// Zdobądź obiekt
@ drut ( pobierzInformacje o obiekcie , { nazwaApi obiektu : KAMPANIA } )
Informacje o obiekcie ;


// Pobierz typ kampanii – Lista wyboru
@ drut ( pobierzPicklistValues , { identyfikator typu rekordu : „$objectInfo.data.defaultRecordTypeId” , poleNazwaApi : TYP } )
Wartości typu kampanii ;


konferencja = FAŁSZ ;
webinarium = FAŁSZ ;
partnerstwo = FAŁSZ ;
Inny = FAŁSZ ;

// Obsługa logiki
uchwytZmień ( wydarzenie ) {
Ten . wartość = wydarzenie. cel . wartość ;
Jeśli ( Ten . wartość === 'Konferencja' ) {
// Wyświetl status jako PLANOWANY
Ten . konferencja = PRAWDA ;
Ten . webinarium = FAŁSZ ;
Ten . partnerstwo = FAŁSZ ;
}
w przeciwnym razie Jeśli ( Ten . wartość === „Webinaria” ) {
// Wyświetl status jako UKOŃCZONY
Ten . webinarium = PRAWDA ;
Ten . konferencja = FAŁSZ ;
Ten . partnerstwo = FAŁSZ ;
}
w przeciwnym razie Jeśli ( Ten . wartość === 'Wzmacniacz' ) {
// Wyświetl status jako W TOKU
Ten . webinarium = FAŁSZ ;
Ten . konferencja = FAŁSZ ;
Ten . partnerstwo = PRAWDA ;
}
w przeciwnym razie {
// Wyświetl status jako IN ABORTED
Ten . webinarium = FAŁSZ ;
Ten . konferencja = FAŁSZ ;
Ten . partnerstwo = FAŁSZ ;

}
}


}

drugiKomponent.js-meta.xml

wersja = „1,0” ?>

= „http://soap.sforce.com/2006/04/metadata” >

57,0 < / wersja api>

PRAWDA < / jest odsłonięty>



błyskawica__AppPage < / cel>

błyskawica__RecordPage < / cel>

< / cele>

< / Pakiet LightningComponent>

Wyjście:

Typ – „Konferencja”. Zatem status to „PLANOWANE”.

Typ – „Webinarium”. Zatem status to „ZAKOŃCZONO”.

Typ – „Partnerzy”. Zatem status to „W TOKU”.

Typ nie znajduje się w podanych opcjach. Zatem status to „APOROWANY”.

Przykład 3:

Teraz tworzymy combobox z rekordami kampanii jako opcjami. Jeśli wybierzemy dowolną opcję, w interfejsie użytkownika zostanie zwrócony odpowiedni typ kampanii.

Najpierw musimy utworzyć klasę Apex za pomocą metody getCampaign(). Ta metoda zwraca listę wszystkich kampanii z identyfikatorem, nazwą, typem i stanem.

Rekordy kampanii. ok

publiczne z udostępnianiem klasa Rekordy kampanii {

@ Aura włączona ( buforowane = PRAWDA )

// Pobierz listę kampanii

publiczny statyczny Lista < Kampania > pobierz kampanię ( ) {

powrót [ WYBIERZ identyfikator , Nazwa , Typ , Stan z kampanii ] ;

}

}

trzeciPrzykład.html



tytuł = „TYP KAMPANII” Ikona- nazwa = „standard:kampania” >

< div klasa = „slds-var-m-around_medium” styl = „wysokość: 20 pikseli; szerokość: 400 pikseli” >

nazwa = 'Kampania'

etykieta = „Wybierz nazwę kampanii”

opcje = { Opcje kampanii }

wartość = { wartość }

na zmianę = { zmiana uchwytu }

>

< / błyskawica-combobox>

< / div >< br >

< br >

< P > Typ kampanii dla tej kampanii: < B > {wartość} < / B >< / P >

< / karta-błyskawica>

< / szablon>

trzeciPrzykład.js

  1. Musimy określić metodę, która pobiera listę kampanii w metodzie connectcallback(). Zadeklaruj tablicę o nazwie „camps” i zapisz wynik z etykietą jako Identyfikator kampanii i wartością jako Typ kampanii. Ta tablica stanowi dane wejściowe do CampaignNames (należy ją utworzyć za pomocą dekoratora ścieżek).
  2. W metodzie pobierającej Campaignoptions() zwróć tablicę CampaignNames. Zatem combobox używa tych opcji.
  3. Ustaw wybraną wartość w metodzie obsługi handleonchange().
import { Element Błyskawicy , ścieżka } z 'szczęście' ;

import pobierz kampanię z „@salesforce/apex/CampaignRecords.getCampaign” ;

eksport domyślny klasa Trzeci przykład rozciąga się Element Błyskawicy {

wartość = '' ;
@ śledź nazwy kampanii = [ ] ;
Dostawać Opcje kampanii ( ) {
powrót Ten . nazwy kampanii ;
}

// Dodaj opcje do tablicy camps z Apex.
// etykieta będzie nazwą kampanii
// wartość będzie typem kampanii
podłączonyOddzwonienie ( ) {
pobierz kampanię ( )

. Następnie ( wynik => {

niech obozy = [ ] ;

Do ( był k = 0 ; k < wynik. długość ; k ++ ) {

obozy. naciskać ( { etykieta : wynik [ k ] . Nazwa , wartość : wynik [ k ] . Typ } ) ;
}
Ten . nazwy kampanii = obozy ;
} )

}


// Obsługuj wartość
zmiana uchwytu ( wydarzenie ) {
Ten . wartość = wydarzenie. Szczegół . wartość ;
}
}

Wyjście:

Wybierzmy rekord i zobaczmy typ.

Wniosek

Dowiedzieliśmy się, jak utworzyć combobox w LWC z atrybutami i przykładami. Najpierw utworzyliśmy combobox z listą wartości i wyświetliliśmy wybraną wartość. Następnie renderujemy szablon HTML na podstawie wybranej wartości poprzez renderowanie warunkowe. Na koniec dowiedzieliśmy się, jak utworzyć opcje comboboxu na podstawie istniejących rekordów Salesforce i wyświetlić powiązane pola w interfejsie użytkownika.