Locale

Change the locale of the datepicker, schedule and client side validation messages.

Language
English
English
English
French
German
German
German
Italian
Korean
Spanish
Catalan
Dutch
Portuguese
Portuguese
Arabic
Arabic
Bulgarian
Czech
Greek
Persian
Finnish
Danish
Hindi
Indonesian
Croatian
Japanese
Hungarian
Hebrew
Georgian
Central Kurdish
Khmer
Kyrgyz
Kazakh
Lithuanian
Latvian
Malay
Norwegian
Polish
Romanian
Russian
Slovak
Slovenian
Serbian
Serbian
Swedish
Thai
Turkish
Ukrainian
Vietnamese
Chinese
Chinese

Input Style

Themes

PrimeOne
Saga Saga
Vela Vela
Arya Arya
Bootstrap
bootstrap4-blue-light Bootstrap Blue
bootstrap4-purple-light Bootstrap Purple
bootstrap4-blue-dark Bootstrap Blue
bootstrap4-purple-dark Bootstrap Purple
Material Design
material-indigo-light Indigo
material-deeppurple-light' Deep Purple
material-indigo-dark Indigo
material-deeppurple-dark' Deep Purple
Material Design Compact
material-indigo-light Indigo
material-deeppurple-light' Deep Purple
material-indigo-dark Indigo
material-deeppurple-dark' Deep Purple

DataTable Scroll

Both vertical and horizontal scrolling of the data is supported with optional frozen rows-columns and on-demand loading features.

Vertical
NameCountryRepresentativeStatus
Stacey A GlickItalyBernardo Dominic NEGOTIATION
Claire I StockhamFranceAmy Elsner NEGOTIATION
Darci V RulapaughCanadaStephen Shaw RENEWAL
Munro B MaletFranceBernardo Dominic PROPOSAL
Wickens V BowleyArgentinaStephen Shaw NEGOTIATION
Izzy S FollerArgentinaIvan Magalhaes RENEWAL
Silvio H BologniaJapanBernardo Dominic PROPOSAL
Juan H KolmetzArgentinaOnyama Limba RENEWAL
Kadeem G NickaUnited KingdomIoni Bowcher RENEWAL
Isabel V MacleadCanadaAmy Elsner UNQUALIFIED
Isabel O PaprockiBrazilAnna Fali RENEWAL
Alejandro Y KolmetzGermanyOnyama Limba PROPOSAL
Jefferson M GlickItalyXuxue Feng NEW
Rodrigues J FigeroaIndiaBernardo Dominic NEW
Mayumi S DoeGermanyBernardo Dominic UNQUALIFIED
Aditya L PoquetteBrazilAsiya Javayant UNQUALIFIED
Francesco E MacleadBrazilIoni Bowcher UNQUALIFIED
Silvio N GarufiAustraliaOnyama Limba NEGOTIATION
Claire F NestleCanadaOnyama Limba QUALIFIED
Stacey K RoysterItalyIvan Magalhaes QUALIFIED
Aditya U PoquetteRussiaIvan Magalhaes NEW
Octavia C SchemmerArgentinaElwin Sharvill NEW
Aruna I BowleyItalyAsiya Javayant NEW
Antonio M MaletIndiaAmy Elsner PROPOSAL
Arvin E StensethItalyAsiya Javayant NEGOTIATION
Julie V RoysterRussiaIvan Magalhaes QUALIFIED
Maisha I MacleadRussiaAnna Fali NEW
Rodrigues R CaudyRussiaAmy Elsner UNQUALIFIED
James B ChuiUnited KingdomOnyama Limba RENEWAL
Ivar C MorascaAustraliaIoni Bowcher QUALIFIED
Stacey O GlickJapanAsiya Javayant NEGOTIATION
Costa V FlosiGermanyAsiya Javayant NEW
Silvio K RulapaughArgentinaXuxue Feng QUALIFIED
Chavez R AmigonItalyXuxue Feng NEGOTIATION
Alejandro N ChuiGermanyIoni Bowcher PROPOSAL
Misaki K CaldareraArgentinaIoni Bowcher UNQUALIFIED
Alejandro C TollnerFranceOnyama Limba NEGOTIATION
Kaitlin I BriddickFranceStephen Shaw NEW
Maria O SaylorsGermanyAnna Fali QUALIFIED
Salvatore O SaylorsGermanyBernardo Dominic UNQUALIFIED
Munro W MorascaRussiaStephen Shaw NEGOTIATION
Deepesh F MaletGermanyAnna Fali NEW
Rodrigues Y BowleyItalyElwin Sharvill UNQUALIFIED
Mujtaba C WieserAustraliaElwin Sharvill UNQUALIFIED
Jennifer M PerinBrazilOnyama Limba QUALIFIED
Emily P BriddickBrazilIoni Bowcher NEGOTIATION
Leon G MacleadCanadaAmy Elsner RENEWAL
Rodrigues N PoquetteGermanyAnna Fali RENEWAL
Alejandro G IturbideBrazilAmy Elsner NEW
Kaitlin X ButtGermanyXuxue Feng PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Juan N DilliardIndiaOnyama Limba UNQUALIFIED
Greenwood K BriddickAustraliaElwin Sharvill NEW
Chavez G AmigonArgentinaAsiya Javayant PROPOSAL
Octavia H DarakjyRussiaIoni Bowcher QUALIFIED
Jones Y VenereArgentinaAsiya Javayant PROPOSAL
Emily I ButtArgentinaElwin Sharvill UNQUALIFIED
Ivar E DoeFranceAmy Elsner PROPOSAL
Ivar H AlbaresSpainAsiya Javayant PROPOSAL
Cody L FollerItalyAnna Fali NEGOTIATION
Maisha X TollnerArgentinaBernardo Dominic QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aruna Q KolmetzAustralia2026-07-01Commercial Press UNQUALIFIED56Asiya Javayant
1001Greenwood T StensethGermany2026-07-15Truhlar And Truhlar Attys NEGOTIATION64Asiya Javayant
1002Leon N WaycottJapan2026-07-18Feltz Printing Service UNQUALIFIED12Xuxue Feng
1003Aika Y KolmetzBrazil2026-07-18Rousseaux, Michael Esq NEW15Ivan Magalhaes
1004Sinclair G SaylorsArgentina2026-07-04Morlong Associates NEGOTIATION9Xuxue Feng
1005Jeanfrancois P FlosiCanada2026-07-12Buckley Miller Wright RENEWAL27Bernardo Dominic
1006Tony Z RoysterRussia2026-07-14Chemel, James L Cpa QUALIFIED39Asiya Javayant
1007Aika J WhobreyItaly2026-06-27Chanay, Jeffrey A Esq NEGOTIATION65Ivan Magalhaes
1008Emily Q WhobreyFrance2026-06-30King, Christopher A Esq UNQUALIFIED34Bernardo Dominic
1009Morrow Z FerenczUnited Kingdom2026-06-26Morlong Associates UNQUALIFIED89Bernardo Dominic
1010Cody M RutaUnited Kingdom2026-07-15King, Christopher A Esq NEGOTIATION42Ioni Bowcher
1011Octavia E KuskoCanada2026-07-10Truhlar And Truhlar Attys UNQUALIFIED50Asiya Javayant
1012Tony M SergiBrazil2026-07-14Truhlar And Truhlar Attys PROPOSAL71Ivan Magalhaes
1013Deepesh J DarakjyIndia2026-07-14Benton, John B Jr NEW79Ioni Bowcher
1014Stacey O GarufiItaly2026-07-01Commercial Press PROPOSAL21Bernardo Dominic
1015Kaitlin R OldroydBrazil2026-06-30Feltz Printing Service NEW72Xuxue Feng
1016Silvio K KolmetzUnited Kingdom2026-07-12Rousseaux, Michael Esq UNQUALIFIED95Elwin Sharvill
1017Sinclair V SergiItaly2026-07-13Printing Dimensions QUALIFIED88Elwin Sharvill
1018Octavia A GlickCanada2026-07-03Feiner Bros PROPOSAL95Bernardo Dominic
1019Alejandro Q FerenczIndia2026-06-28Rangoni Of Florence NEGOTIATION36Elwin Sharvill
1020Misaki B BowleyBrazil2026-07-10Rousseaux, Michael Esq NEGOTIATION93Xuxue Feng
1021Nicolas F TollnerGermany2026-07-06Benton, John B Jr NEW10Elwin Sharvill
1022Jeanfrancois F DilliardIndia2026-07-03Feltz Printing Service NEGOTIATION13Ioni Bowcher
1023Aditya Q CampainGermany2026-07-17Rousseaux, Michael Esq UNQUALIFIED53Asiya Javayant
1024Darci Y MaletUnited Kingdom2026-07-13Commercial Press RENEWAL53Xuxue Feng
1025James V RimItaly2026-07-02Rangoni Of Florence QUALIFIED20Bernardo Dominic
1026Arvin M AmigonJapan2026-07-09Morlong Associates PROPOSAL6Amy Elsner
1027Jefferson T FigeroaCanada2026-07-07Printing Dimensions UNQUALIFIED31Amy Elsner
1028Rodrigues M AmigonIndia2026-07-11Commercial Press QUALIFIED32Xuxue Feng
1029Tony D SlusarskiSpain2026-07-03Commercial Press NEW22Onyama Limba
1030Stacey G FollerUnited Kingdom2026-06-25Rangoni Of Florence NEGOTIATION30Asiya Javayant
1031Salvatore I BriddickBrazil2026-07-01Rousseaux, Michael Esq PROPOSAL98Stephen Shaw
1032Deepesh G RoysterJapan2026-07-16Feltz Printing Service QUALIFIED35Anna Fali
1033Nicolas Y SergiArgentina2026-06-29Chapman, Ross E Esq NEW32Ioni Bowcher
1034Alejandro Z WhobreyJapan2026-07-03Feltz Printing Service UNQUALIFIED17Ioni Bowcher
1035Arvin M MaletBrazil2026-07-16Feiner Bros UNQUALIFIED82Amy Elsner
1036Jefferson U BriddickRussia2026-06-25Commercial Press NEW17Asiya Javayant
1037Johnson S KolmetzSpain2026-07-14Chapman, Ross E Esq QUALIFIED66Amy Elsner
1038Mujtaba J RoysterItaly2026-06-27Dorl, James J Esq RENEWAL92Xuxue Feng
1039Aruna X KuskoAustralia2026-07-01Commercial Press PROPOSAL76Bernardo Dominic
1040Faith I MaletBrazil2026-06-23Rangoni Of Florence NEGOTIATION72Stephen Shaw
1041Aika Z CampainBrazil2026-06-26Rousseaux, Michael Esq QUALIFIED98Bernardo Dominic
1042Chavez K BologniaUnited Kingdom2026-06-19Feiner Bros QUALIFIED97Bernardo Dominic
1043Leon G SchemmerCanada2026-07-11Commercial Press RENEWAL33Elwin Sharvill
1044Alejandro L FigeroaCanada2026-06-21Feiner Bros NEW97Onyama Limba
1045Kadeem D ShinkoBrazil2026-07-18Rangoni Of Florence UNQUALIFIED94Elwin Sharvill
1046Mayumi I VocelkaSpain2026-07-15King, Christopher A Esq NEW99Ivan Magalhaes
1047Maria Q RutaRussia2026-07-04Buckley Miller Wright NEW26Ioni Bowcher
1048Jeanfrancois F NestleBrazil2026-06-26Buckley Miller Wright RENEWAL36Ivan Magalhaes
1049Deepesh N FigeroaSpain2026-07-03Chemel, James L Cpa NEGOTIATION84Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Kadeem Q GauchoFranceStephen Shaw UNQUALIFIED
Johnson V AlbaresFranceElwin Sharvill NEGOTIATION
Aruna R AmigonBrazilStephen Shaw QUALIFIED
Maria H FollerUnited KingdomAmy Elsner QUALIFIED
Juan G WieserArgentinaIoni Bowcher RENEWAL
Leon H WaycottBrazilAmy Elsner RENEWAL
Ivar M IturbideArgentinaAsiya Javayant QUALIFIED
Jones R MacleadIndiaAnna Fali UNQUALIFIED
Julie A ChuiItalyAsiya Javayant QUALIFIED
Ricardo I KolmetzFranceStephen Shaw RENEWAL
Maria X PaprockiJapanAsiya Javayant NEGOTIATION
Julie T WaycottAustraliaBernardo Dominic RENEWAL
Johnson D SchemmerAustraliaBernardo Dominic PROPOSAL
Antonio F BowleyBrazilAmy Elsner PROPOSAL
Faith I WieserJapanAmy Elsner RENEWAL
Kadeem M FlosiAustraliaOnyama Limba RENEWAL
Nicolas F MacleadJapanIoni Bowcher NEW
Rodrigues F PerinRussiaXuxue Feng NEGOTIATION
Wickens Z FigeroaUnited KingdomOnyama Limba RENEWAL
Maisha B ChuiSpainIoni Bowcher QUALIFIED
Cody E OstroskyCanadaElwin Sharvill PROPOSAL
Clifford W WaycottGermanyOnyama Limba RENEWAL
Sinclair B VocelkaBrazilOnyama Limba UNQUALIFIED
Francesco U AlbaresFranceIvan Magalhaes RENEWAL
Wickens A NickaArgentinaOnyama Limba RENEWAL
Clifford B GlickFranceStephen Shaw PROPOSAL
Octavia O BologniaFranceElwin Sharvill RENEWAL
Jeanfrancois X CaldareraUnited KingdomXuxue Feng RENEWAL
Izzy Y BriddickJapanXuxue Feng QUALIFIED
Jennifer B MaletIndiaIvan Magalhaes UNQUALIFIED
Rodrigues Y TollnerRussiaIoni Bowcher RENEWAL
Misaki N KolmetzUnited KingdomIoni Bowcher PROPOSAL
Nicolas B StensethIndiaOnyama Limba QUALIFIED
Aditya O StensethItalyIvan Magalhaes PROPOSAL
Aditya A TollnerCanadaIvan Magalhaes PROPOSAL
Munro R NestleUnited KingdomIvan Magalhaes RENEWAL
Morrow R FlosiItalyAnna Fali UNQUALIFIED
Stacey F AmigonCanadaAmy Elsner NEGOTIATION
Aditya A InouyeAustraliaAmy Elsner QUALIFIED
Francesco O RutaBrazilOnyama Limba NEGOTIATION
Misaki X VenereAustraliaBernardo Dominic NEW
Cody N CaldareraRussiaAnna Fali NEW
Kadeem Q VenereBrazilElwin Sharvill NEGOTIATION
Aika T MorascaBrazilIvan Magalhaes QUALIFIED
Nicolas R GillianUnited KingdomIvan Magalhaes NEW
Octavia D StensethSpainAmy Elsner RENEWAL
Jones S FollerBrazilStephen Shaw NEW
Leja Q MaletFranceAsiya Javayant RENEWAL
Johnson N DoeAustraliaAnna Fali NEGOTIATION
Jefferson K GarufiFranceStephen Shaw PROPOSAL
Frozen Columns
Name
Ashley Y Amigon
Leon U Glick
Kaitlin N Malet
Maria C Chui
Murillo L Flosi
Antonio I Poquette
Salvatore G Stenseth
Ricardo D Shinko
Alejandro H Malet
Aruna T Shinko
Salvatore Z Stockham
Maria C Bolognia
Nicolas T Ruta
Nicolas I Stockham
Deepesh S Ferencz
Morrow I Flosi
Ivar M Nicka
Silvio W Gillian
Francesco H Waycott
Kaitlin S Inouye
Munro D Rim
Rodrigues X Oldroyd
Aditya N Poquette
Johnson S Nicka
Deepesh F Stenseth
Julie P Nestle
Wickens N Glick
Aditya M Ferencz
Greenwood O Stockham
Ashley Z Whobrey
Leja Z Waycott
Izzy P Garufi
Ashley O Royster
Sinclair Z Foller
Izzy P Vocelka
James S Malet
Claire Y Foller
Ivar K Ostrosky
Aika Z Wieser
Cody R Briddick
Maisha M Nicka
Jones K Stockham
Claire F Ferencz
Deepesh L Morasca
Leja N Albares
Izzy R Bolognia
Leon W Malet
Alejandro L Bowley
Adams Z Ferencz
Tony Y Gillian
IdCountryDate
1000Australia2026-07-13
1001United Kingdom2026-07-11
1002India2026-06-25
1003Japan2026-07-06
1004France2026-07-16
1005India2026-07-09
1006Russia2026-06-23
1007Russia2026-07-17
1008Canada2026-07-12
1009Australia2026-06-24
1010India2026-07-18
1011Germany2026-07-02
1012Canada2026-06-30
1013Australia2026-07-14
1014Australia2026-06-20
1015Spain2026-07-03
1016India2026-06-26
1017Russia2026-07-07
1018France2026-06-20
1019Germany2026-06-21
1020France2026-07-02
1021Canada2026-06-27
1022Russia2026-07-14
1023Argentina2026-06-26
1024Japan2026-07-04
1025United Kingdom2026-07-16
1026Italy2026-07-11
1027Italy2026-07-11
1028Canada2026-07-08
1029Russia2026-07-16
1030Germany2026-07-04
1031United Kingdom2026-07-02
1032France2026-07-17
1033United Kingdom2026-07-04
1034United Kingdom2026-07-03
1035Canada2026-07-09
1036India2026-07-17
1037Italy2026-06-22
1038France2026-07-16
1039France2026-07-08
1040Brazil2026-06-25
1041Russia2026-07-14
1042Australia2026-07-16
1043India2026-06-21
1044Japan2026-07-10
1045Canada2026-06-29
1046Argentina2026-06-30
1047United Kingdom2026-07-03
1048Italy2026-06-26
1049Canada2026-07-06

On-Demand Data

NameIdCountryDate
Aruna O Dilliard1000Italy2026-07-17
Murillo S Schemmer1001Australia2026-07-15
Cody Z Chui1002Canada2026-06-25
Alejandro Y Tollner1003Italy2026-07-13
Munro K Flosi1004India2026-07-17
Stacey R Amigon1005Brazil2026-07-05
Isabel K Caudy1006Italy2026-07-15
Kadeem S Stockham1007Brazil2026-07-07
Emily T Schemmer1008Argentina2026-07-06
Isabel P Oldroyd1009Spain2026-07-05
Clifford N Whobrey1010United Kingdom2026-07-02
Rodrigues Y Doe1011Argentina2026-06-20
James Z Figeroa1012Australia2026-07-07
Arvin N Paprocki1013Canada2026-06-24
Emily Q Doe1014Canada2026-07-18
Rodrigues J Glick1015Brazil2026-06-30
Isabel W Ruta1016Canada2026-06-26
Costa E Dilliard1017France2026-07-11
Darci O Waycott1018United Kingdom2026-07-12
Antonio C Saylors1019Italy2026-07-16
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Salvatore Q PerinAustraliaIoni Bowcher RENEWAL
Aditya G RutaUnited KingdomAmy Elsner NEGOTIATION
Mayumi C FerenczJapanBernardo Dominic PROPOSAL
Jones D ShinkoSpainIvan Magalhaes QUALIFIED
Izzy A MorascaSpainIvan Magalhaes QUALIFIED
Jennifer X VocelkaIndiaIvan Magalhaes PROPOSAL
Jones E FlosiItalyXuxue Feng PROPOSAL
Greenwood N ChuiAustraliaIoni Bowcher UNQUALIFIED
Ashley H FollerIndiaElwin Sharvill NEW
Smith C MarrierIndiaElwin Sharvill UNQUALIFIED
Munro W OldroydIndiaStephen Shaw PROPOSAL
Morrow W VenereIndiaOnyama Limba UNQUALIFIED
Sinclair C SergiArgentinaAnna Fali UNQUALIFIED
Morrow J MorascaJapanIoni Bowcher RENEWAL
Ivar N WaycottJapanAnna Fali QUALIFIED
Cody Y BriddickBrazilXuxue Feng NEGOTIATION
Tony E FigeroaJapanBernardo Dominic NEW
Izzy X RoysterRussiaOnyama Limba PROPOSAL
Sinclair Y PaprockiUnited KingdomAmy Elsner NEW
Wickens C GarufiFranceElwin Sharvill NEGOTIATION
James O MorascaBrazilStephen Shaw PROPOSAL
Julie O ChuiRussiaOnyama Limba PROPOSAL
Costa A CampainIndiaXuxue Feng NEGOTIATION
Faith R DilliardCanadaIvan Magalhaes QUALIFIED
David R StensethCanadaIoni Bowcher QUALIFIED
Cody N NickaGermanyAsiya Javayant QUALIFIED
Juan B InouyeBrazilAmy Elsner NEGOTIATION
Leon E FerenczItalyAnna Fali NEW
Faith L DilliardUnited KingdomElwin Sharvill UNQUALIFIED
Julie W RutaSpainIoni Bowcher QUALIFIED
Julie I FollerItalyAmy Elsner QUALIFIED
Wickens A GlickFranceOnyama Limba QUALIFIED
Leja W OldroydItalyIoni Bowcher QUALIFIED
Darci N FigeroaUnited KingdomAmy Elsner PROPOSAL
David M PoquetteItalyIvan Magalhaes RENEWAL
Cody D KolmetzAustraliaBernardo Dominic QUALIFIED
Johnson V SaylorsSpainIoni Bowcher QUALIFIED
Nicolas X RutaFranceXuxue Feng QUALIFIED
Stacey C NestleBrazilOnyama Limba NEGOTIATION
Smith D PaprockiFranceXuxue Feng QUALIFIED

<style>
    .ui-datatable-frozenlayout-left {
        width: 20%;
    }

    .ui-datatable-frozenlayout-right {
        width: 80%;
    }
</style>


<h:form>
    <div class="card">
        <h5 style="margin-top:0">Vertical</h5>
        <p:dataTable var="customer" value="#{dtScrollView.customers1}" scrollable="true" scrollHeight="250">
            <p:column headerText="Name" footerText="Name">
                <h:outputText value="#{customer.name}"/>
            </p:column>
            <p:column headerText="Country" footerText="Country">
                <h:outputText value="#{customer.country}"/>
            </p:column>
            <p:column headerText="Representative" footerText="Representative">
                <h:outputText value="#{customer.representative.name}"/>
            </p:column>
            <p:column headerText="Status" footerText="Status">
                <span class="customer-badge status-#{customer.status.name().toLowerCase()}">#{customer.status}</span>
            </p:column>
        </p:dataTable>
    </div>

    <div class="card">
        <h5>Horizontal</h5>
        <p:dataTable var="customer" value="#{dtScrollView.customers2}" scrollable="true" scrollWidth="600">
            <p:column headerText="Name" footerText="Name">
                <h:outputText value="#{customer.name}"/>
            </p:column>
            <p:column headerText="Country" footerText="Country">
                <h:outputText value="#{customer.country}"/>
            </p:column>
            <p:column headerText="Representative" footerText="Representative">
                <h:outputText value="#{customer.representative.name}"/>
            </p:column>
            <p:column headerText="Status" footerText="Status">
                <span class="customer-badge status-#{customer.status.name().toLowerCase()}">#{customer.status}</span>
            </p:column>
        </p:dataTable>
    </div>

    <div class="card">
        <h5>Horizontal and Vertical</h5>
        <p:dataTable var="customer" value="#{dtScrollView.customers3}" scrollable="true" scrollWidth="50%" scrollHeight="250">
            <p:column headerText="Id" footerText="Id">
                <h:outputText value="#{customer.id}"/>
            </p:column>
            <p:column headerText="Name" footerText="Name">
                <h:outputText value="#{customer.name}"/>
            </p:column>
            <p:column headerText="Country" footerText="Country">
                <h:outputText value="#{customer.country}"/>
            </p:column>
            <p:column headerText="Date" footerText="Date">
                <h:outputText value="#{customer.date}"/>
            </p:column>
            <p:column headerText="Company" footerText="Company">
                <h:outputText value="#{customer.company}"/>
            </p:column>
            <p:column headerText="Status" footerText="Status">
                <span class="customer-badge status-#{customer.status.name().toLowerCase()}">#{customer.status}</span>
            </p:column>
            <p:column headerText="Activity" footerText="Activity">
                <h:outputText value="#{customer.activity}"/>
            </p:column>
            <p:column headerText="Representative" footerText="Representative">
                <h:outputText value="#{customer.representative.name}"/>
            </p:column>
        </p:dataTable>
    </div>

    <div class="card">
        <h5>Frozen Rows</h5>
        <p:dataTable var="customer" value="#{dtScrollView.customers4}" scrollable="true" scrollHeight="250"
                     frozenRows="2">
            <p:column headerText="Name" footerText="Name">
                <h:outputText value="#{customer.name}"/>
            </p:column>
            <p:column headerText="Country" footerText="Country">
                <h:outputText value="#{customer.country}"/>
            </p:column>
            <p:column headerText="Representative" footerText="Representative">
                <h:outputText value="#{customer.representative.name}"/>
            </p:column>
            <p:column headerText="Status" footerText="Status">
                <span class="customer-badge status-#{customer.status.name().toLowerCase()}">#{customer.status}</span>
            </p:column>
        </p:dataTable>
    </div>

    <div class="card">
        <h5>Frozen Columns</h5>
        <p:dataTable var="customer" value="#{dtScrollView.customers5}" scrollable="true" scrollHeight="250"
                     scrollWidth="300" frozenColumns="1">
            <p:column headerText="Name" footerText="Name">
                <h:outputText value="#{customer.name}"/>
            </p:column>
            <p:column headerText="Id" footerText="Id">
                <h:outputText value="#{customer.id}"/>
            </p:column>
            <p:column headerText="Country" footerText="Country">
                <h:outputText value="#{customer.country}"/>
            </p:column>
            <p:column headerText="Date" footerText="Date">
                <h:outputText value="#{customer.date}"/>
            </p:column>
        </p:dataTable>
    </div>

    <div class="card">
        <h3>On-Demand Data</h3>
        <p:dataTable var="customer" value="#{dtScrollView.customers6}" scrollRows="20" scrollable="true" liveScroll="true" scrollHeight="150">
            <p:column headerText="Name" footerText="Name">
                <h:outputText value="#{customer.name}"/>
            </p:column>
            <p:column headerText="Id" footerText="Id">
                <h:outputText value="#{customer.id}"/>
            </p:column>
            <p:column headerText="Country" footerText="Country">
                <h:outputText value="#{customer.country}"/>
            </p:column>
            <p:column headerText="Date" footerText="Date">
                <h:outputText value="#{customer.date}"/>
            </p:column>
        </p:dataTable>
    </div>

    <div class="card">
        <h5>Virtual Scrolling - 20000 Rows</h5>
        <p:dataTable var="customer" value="#{dtScrollView.lazyModel}" scrollRows="20" scrollable="true"
                     virtualScroll="true" scrollHeight="200" rows="40" style="margin-bottom:0">
            <p:column headerText="Name" footerText="Name">
                <h:outputText value="#{customer.name}"/>
            </p:column>
            <p:column headerText="Country" footerText="Country">
                <h:outputText value="#{customer.country}"/>
            </p:column>
            <p:column headerText="Representative" footerText="Representative">
                <h:outputText value="#{customer.representative.name}"/>
            </p:column>
            <p:column headerText="Status" footerText="Status">
                <span class="customer-badge status-#{customer.status.name().toLowerCase()}">#{customer.status}</span>
            </p:column>
        </p:dataTable>
    </div>

</h:form>