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
Tony F StensethAustraliaAsiya Javayant PROPOSAL
Silvio S GarufiArgentinaAmy Elsner RENEWAL
Octavia B FerenczItalyBernardo Dominic NEW
David T SlusarskiJapanIoni Bowcher RENEWAL
Julie B WieserAustraliaIvan Magalhaes PROPOSAL
Ashley O MorascaBrazilXuxue Feng NEW
Emily G CampainRussiaAnna Fali NEGOTIATION
Emily S FerenczSpainXuxue Feng UNQUALIFIED
Antonio U GillianGermanyOnyama Limba QUALIFIED
Claire D MarrierIndiaOnyama Limba RENEWAL
Clifford S VenereArgentinaXuxue Feng UNQUALIFIED
Arvin X AlbaresFranceAsiya Javayant UNQUALIFIED
Misaki K GauchoBrazilBernardo Dominic PROPOSAL
Aditya U FollerBrazilAnna Fali UNQUALIFIED
Claire V ChuiUnited KingdomAnna Fali QUALIFIED
Silvio W OldroydCanadaAsiya Javayant UNQUALIFIED
Antonio T WaycottGermanyAmy Elsner RENEWAL
Tony N CampainIndiaAnna Fali RENEWAL
Jeanfrancois B DilliardBrazilBernardo Dominic QUALIFIED
Stacey M KuskoIndiaIoni Bowcher NEGOTIATION
Francesco P GauchoIndiaElwin Sharvill UNQUALIFIED
Isabel R NestleItalyOnyama Limba QUALIFIED
Julie G IturbideGermanyIoni Bowcher NEW
Jefferson N IturbideFranceOnyama Limba NEGOTIATION
Aditya G FerenczSpainIvan Magalhaes UNQUALIFIED
Ashley Z SlusarskiAustraliaStephen Shaw PROPOSAL
Tony U BologniaItalyIvan Magalhaes NEGOTIATION
Juan Y PerinSpainAnna Fali PROPOSAL
Antonio J BowleyCanadaAmy Elsner PROPOSAL
Chavez N KolmetzFranceOnyama Limba UNQUALIFIED
Murillo N PerinArgentinaOnyama Limba PROPOSAL
Chavez T DoeIndiaAmy Elsner RENEWAL
Wickens S MarrierIndiaOnyama Limba UNQUALIFIED
Francesco O BowleySpainStephen Shaw NEGOTIATION
Antonio O GillianItalyBernardo Dominic NEW
Costa O CaudyJapanBernardo Dominic QUALIFIED
Nicolas Y WaycottRussiaStephen Shaw RENEWAL
Greenwood N FlosiFranceIvan Magalhaes QUALIFIED
Izzy E GarufiAustraliaIoni Bowcher UNQUALIFIED
Ivar Z ShinkoRussiaBernardo Dominic PROPOSAL
Kaitlin C OldroydItalyXuxue Feng RENEWAL
James A VenereBrazilAmy Elsner NEGOTIATION
Greenwood Z WaycottItalyIvan Magalhaes RENEWAL
Aditya B BowleyRussiaAmy Elsner QUALIFIED
Isabel O TollnerArgentinaAsiya Javayant NEGOTIATION
Cody G OstroskyBrazilXuxue Feng UNQUALIFIED
Rodrigues A OldroydFranceBernardo Dominic NEW
Jones O GauchoAustraliaAnna Fali NEW
Mujtaba S VocelkaItalyAnna Fali NEGOTIATION
Chavez X SlusarskiItalyElwin Sharvill NEW
Horizontal
NameCountryRepresentativeStatus
Julie I MacleadAustraliaAnna Fali PROPOSAL
Arvin A RimFranceStephen Shaw QUALIFIED
Jones B TollnerItalyElwin Sharvill RENEWAL
Darci O RulapaughAustraliaIvan Magalhaes NEGOTIATION
Maria E PoquetteItalyIoni Bowcher PROPOSAL
Ricardo C MaletFranceBernardo Dominic QUALIFIED
Smith Q WaycottBrazilAnna Fali RENEWAL
Leon T SlusarskiIndiaIvan Magalhaes QUALIFIED
Jefferson R RulapaughFranceStephen Shaw PROPOSAL
Octavia M RimBrazilOnyama Limba QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Tony O AlbaresSpain2025-06-16Chanay, Jeffrey A Esq NEW36Onyama Limba
1001Jeanfrancois R FlosiJapan2025-06-02Chemel, James L Cpa UNQUALIFIED92Stephen Shaw
1002James V MorascaItaly2025-05-22Chapman, Ross E Esq PROPOSAL33Onyama Limba
1003Alejandro Q MaletFrance2025-06-06Rangoni Of Florence PROPOSAL66Amy Elsner
1004Stacey P KolmetzCanada2025-05-27Truhlar And Truhlar Attys NEW90Asiya Javayant
1005Ashley S VenereJapan2025-05-28Buckley Miller Wright QUALIFIED96Anna Fali
1006Smith J GillianCanada2025-06-16Buckley Miller Wright PROPOSAL62Amy Elsner
1007Arvin F AmigonGermany2025-05-24Rangoni Of Florence PROPOSAL73Elwin Sharvill
1008Octavia T PaprockiRussia2025-06-13Chapman, Ross E Esq RENEWAL36Stephen Shaw
1009Tony R GlickItaly2025-06-03Feiner Bros QUALIFIED36Ivan Magalhaes
1010James F KolmetzBrazil2025-06-01Buckley Miller Wright UNQUALIFIED58Ivan Magalhaes
1011Deepesh P WieserBrazil2025-05-27Morlong Associates PROPOSAL38Asiya Javayant
1012Aruna P NickaIndia2025-05-20Feiner Bros QUALIFIED33Onyama Limba
1013Darci W InouyeJapan2025-06-15Chanay, Jeffrey A Esq NEGOTIATION90Bernardo Dominic
1014Antonio K TollnerIndia2025-05-28King, Christopher A Esq PROPOSAL41Ivan Magalhaes
1015Tony N GillianSpain2025-06-09Chanay, Jeffrey A Esq PROPOSAL39Ioni Bowcher
1016Nicolas I TollnerRussia2025-06-06Truhlar And Truhlar Attys NEW71Ivan Magalhaes
1017Aditya E WaycottRussia2025-06-04Dorl, James J Esq RENEWAL60Anna Fali
1018Sinclair C IturbideUnited Kingdom2025-06-12Chemel, James L Cpa PROPOSAL65Amy Elsner
1019Antonio P StensethBrazil2025-05-28Dorl, James J Esq PROPOSAL84Bernardo Dominic
1020Misaki F WhobreyJapan2025-05-18Buckley Miller Wright PROPOSAL49Bernardo Dominic
1021Clifford H TollnerFrance2025-06-07Buckley Miller Wright NEGOTIATION23Bernardo Dominic
1022Aika C DilliardFrance2025-06-13Dorl, James J Esq NEGOTIATION53Asiya Javayant
1023Stacey T RutaGermany2025-05-19Rangoni Of Florence RENEWAL92Ivan Magalhaes
1024Juan S VenereUnited Kingdom2025-06-06Truhlar And Truhlar Attys NEW44Ivan Magalhaes
1025Adams M IturbideArgentina2025-06-08Chanay, Jeffrey A Esq NEW27Stephen Shaw
1026Deepesh H PoquetteCanada2025-05-23Benton, John B Jr PROPOSAL59Onyama Limba
1027Darci P NickaIndia2025-05-27King, Christopher A Esq NEGOTIATION57Onyama Limba
1028Kadeem E GlickItaly2025-06-09Commercial Press RENEWAL54Elwin Sharvill
1029Aditya D MacleadRussia2025-05-22Truhlar And Truhlar Attys PROPOSAL56Elwin Sharvill
1030Misaki Q ButtItaly2025-06-05Rangoni Of Florence UNQUALIFIED11Ioni Bowcher
1031Deepesh N NestleIndia2025-06-02Commercial Press UNQUALIFIED70Ioni Bowcher
1032Octavia Y FigeroaBrazil2025-05-27Truhlar And Truhlar Attys UNQUALIFIED55Amy Elsner
1033Darci F WaycottFrance2025-06-10Buckley Miller Wright QUALIFIED3Ioni Bowcher
1034Jefferson U BriddickCanada2025-05-24Commercial Press UNQUALIFIED54Elwin Sharvill
1035Julie A FigeroaUnited Kingdom2025-06-01Rousseaux, Michael Esq UNQUALIFIED81Onyama Limba
1036Murillo Y WhobreyJapan2025-05-19Truhlar And Truhlar Attys NEGOTIATION41Bernardo Dominic
1037Maisha N WhobreyIndia2025-06-03Rousseaux, Michael Esq QUALIFIED45Amy Elsner
1038Adams N NickaAustralia2025-06-10King, Christopher A Esq NEGOTIATION32Stephen Shaw
1039Misaki U MorascaJapan2025-06-16Feltz Printing Service PROPOSAL8Asiya Javayant
1040Darci Z CampainBrazil2025-06-15Truhlar And Truhlar Attys QUALIFIED15Asiya Javayant
1041Smith R FlosiItaly2025-06-07Rousseaux, Michael Esq NEGOTIATION87Anna Fali
1042Wickens S StensethArgentina2025-06-04Morlong Associates NEW13Xuxue Feng
1043Ashley A SlusarskiRussia2025-05-19Feiner Bros PROPOSAL74Xuxue Feng
1044Silvio N ButtJapan2025-05-28Chanay, Jeffrey A Esq UNQUALIFIED51Asiya Javayant
1045Alejandro H OldroydUnited Kingdom2025-06-03Benton, John B Jr QUALIFIED22Xuxue Feng
1046Sinclair C StockhamCanada2025-05-18Printing Dimensions NEW9Onyama Limba
1047Antonio R MaletFrance2025-06-06Chemel, James L Cpa RENEWAL72Ioni Bowcher
1048Chavez X RimUnited Kingdom2025-06-10Rousseaux, Michael Esq PROPOSAL55Amy Elsner
1049Kaitlin N AlbaresSpain2025-05-31Morlong Associates PROPOSAL22Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Leja B GauchoRussiaAsiya Javayant NEW
Isabel H DoeRussiaBernardo Dominic PROPOSAL
Maria W DilliardIndiaIvan Magalhaes RENEWAL
Octavia Q StensethBrazilOnyama Limba UNQUALIFIED
Francesco Y RoysterAustraliaIvan Magalhaes NEGOTIATION
Aika T NickaBrazilIvan Magalhaes QUALIFIED
Salvatore S NestleArgentinaOnyama Limba UNQUALIFIED
Emily Y CaldareraSpainOnyama Limba NEW
Johnson C SergiIndiaAmy Elsner NEW
Julie V PerinSpainStephen Shaw QUALIFIED
Emily V MorascaGermanyElwin Sharvill PROPOSAL
Juan G KolmetzCanadaIvan Magalhaes NEGOTIATION
Silvio R SergiUnited KingdomAsiya Javayant NEW
Kadeem V SergiItalyIvan Magalhaes NEGOTIATION
Clifford X SchemmerArgentinaAnna Fali RENEWAL
Maria B GillianSpainAsiya Javayant NEW
Cody H PaprockiAustraliaAnna Fali PROPOSAL
Maisha A SergiItalyBernardo Dominic UNQUALIFIED
Ricardo X DoeGermanyIoni Bowcher QUALIFIED
Deepesh H TollnerBrazilOnyama Limba PROPOSAL
Mujtaba S RoysterArgentinaIvan Magalhaes PROPOSAL
Jones S FerenczArgentinaIoni Bowcher UNQUALIFIED
Smith G PaprockiBrazilStephen Shaw QUALIFIED
Sinclair I AmigonBrazilAsiya Javayant UNQUALIFIED
Clifford X FlosiAustraliaIvan Magalhaes NEGOTIATION
Francesco H WhobreyGermanyIoni Bowcher RENEWAL
Greenwood A SaylorsGermanyAmy Elsner RENEWAL
Costa O RoysterAustraliaAsiya Javayant NEGOTIATION
Mayumi S AmigonIndiaOnyama Limba UNQUALIFIED
Jones X ShinkoSpainElwin Sharvill QUALIFIED
Aditya K RoysterCanadaXuxue Feng RENEWAL
Ashley C WhobreyCanadaElwin Sharvill RENEWAL
James Z FigeroaUnited KingdomAmy Elsner UNQUALIFIED
Leon O CampainBrazilOnyama Limba PROPOSAL
Silvio L RoysterItalyAmy Elsner UNQUALIFIED
Stacey Z VenereBrazilIoni Bowcher NEW
Adams P NickaAustraliaAsiya Javayant UNQUALIFIED
Wickens Y ButtIndiaElwin Sharvill NEW
Murillo A BologniaJapanXuxue Feng RENEWAL
Ashley D FlosiIndiaIoni Bowcher NEW
Mayumi P AmigonItalyIoni Bowcher NEW
Faith I OstroskyUnited KingdomBernardo Dominic QUALIFIED
Leon S FlosiAustraliaIoni Bowcher NEGOTIATION
Tony P DarakjyRussiaIoni Bowcher NEW
Aditya Y PaprockiGermanyXuxue Feng NEW
Cody K BriddickCanadaBernardo Dominic NEGOTIATION
James H NickaUnited KingdomOnyama Limba NEGOTIATION
Tony A ShinkoSpainAnna Fali NEGOTIATION
Emily A ButtAustraliaAnna Fali RENEWAL
Jeanfrancois G WieserSpainBernardo Dominic NEGOTIATION
Frozen Columns
Name
Salvatore P Paprocki
Isabel H Kusko
Jefferson Z Albares
Antonio T Bolognia
David W Foller
Murillo V Nestle
Deepesh S Butt
Juan C Iturbide
Maisha P Stockham
Ivar B Chui
Aditya V Caudy
Smith R Iturbide
Cody R Shinko
Jennifer D Ostrosky
Emily C Albares
Ricardo S Bowley
Aruna Y Waycott
James R Ferencz
Clifford Z Morasca
Adams X Nicka
Ashley D Kolmetz
Cody H Stockham
Aditya M Stockham
Clifford T Dilliard
Kaitlin B Gaucho
Chavez W Oldroyd
Greenwood G Chui
Faith X Bolognia
Juan X Ruta
Aruna C Maclead
Juan A Perin
Ricardo H Sergi
Aika S Kolmetz
Stacey V Inouye
Stacey V Wieser
Leja N Figeroa
Smith B Shinko
Adams Q Schemmer
Aditya F Ferencz
Claire A Whobrey
Ivar C Gillian
Costa M Inouye
Maria I Butt
Tony A Amigon
Nicolas P Shinko
Alejandro N Waycott
Smith A Iturbide
Morrow B Malet
Maisha M Ostrosky
Jennifer V Albares
IdCountryDate
1000Canada2025-05-26
1001Australia2025-05-27
1002France2025-05-26
1003Russia2025-05-26
1004Russia2025-05-19
1005Japan2025-06-03
1006Canada2025-06-14
1007Italy2025-06-02
1008Brazil2025-05-24
1009India2025-05-29
1010United Kingdom2025-05-22
1011India2025-05-29
1012Japan2025-06-05
1013Australia2025-06-02
1014Germany2025-06-12
1015Russia2025-05-19
1016India2025-05-27
1017Argentina2025-05-30
1018Argentina2025-06-11
1019Australia2025-05-23
1020Brazil2025-05-31
1021Canada2025-06-14
1022Italy2025-05-25
1023Spain2025-06-11
1024Germany2025-06-07
1025India2025-05-28
1026Germany2025-05-24
1027India2025-06-11
1028Australia2025-05-30
1029Russia2025-06-10
1030Japan2025-06-09
1031France2025-06-16
1032India2025-05-26
1033Germany2025-05-29
1034Australia2025-05-29
1035Argentina2025-05-26
1036United Kingdom2025-05-23
1037Italy2025-05-29
1038Italy2025-06-16
1039India2025-05-24
1040Australia2025-05-18
1041Argentina2025-05-27
1042France2025-06-01
1043United Kingdom2025-05-26
1044France2025-06-13
1045Spain2025-05-18
1046Japan2025-05-26
1047France2025-06-02
1048Argentina2025-06-10
1049Japan2025-05-29

On-Demand Data

NameIdCountryDate
Tony Z Amigon1000Argentina2025-05-23
Aditya H Marrier1001Brazil2025-06-03
Emily W Flosi1002Canada2025-05-26
Salvatore D Iturbide1003Japan2025-05-21
Leja P Schemmer1004France2025-05-29
Smith F Ruta1005Italy2025-06-12
Alejandro J Nicka1006Spain2025-06-09
Octavia R Tollner1007Spain2025-05-30
Darci T Caldarera1008Japan2025-06-05
Jeanfrancois F Stenseth1009United Kingdom2025-05-31
Smith K Glick1010Italy2025-06-14
Ashley F Rulapaugh1011Australia2025-06-16
Tony W Morasca1012United Kingdom2025-05-30
Ricardo U Gaucho1013Canada2025-05-26
Maria Q Whobrey1014India2025-05-31
Salvatore U Royster1015Japan2025-06-04
Alejandro B Ruta1016United Kingdom2025-06-16
Jefferson D Caldarera1017Italy2025-06-16
Ivar B Briddick1018Russia2025-06-02
Izzy P Briddick1019Argentina2025-06-13
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Claire L MaletFranceBernardo Dominic NEW
Misaki D GarufiBrazilAmy Elsner PROPOSAL
Stacey W CampainAustraliaIvan Magalhaes UNQUALIFIED
Smith I NickaFranceIoni Bowcher NEGOTIATION
David O StensethIndiaAmy Elsner RENEWAL
Ashley E BowleyCanadaAnna Fali PROPOSAL
Smith U TollnerBrazilStephen Shaw QUALIFIED
Greenwood C StensethAustraliaAmy Elsner NEW
Kaitlin J FollerBrazilAsiya Javayant NEGOTIATION
Darci M FerenczIndiaBernardo Dominic NEGOTIATION
Nicolas V KuskoAustraliaAnna Fali NEGOTIATION
Maisha W MacleadJapanAnna Fali NEW
Greenwood F OstroskyBrazilStephen Shaw NEW
Johnson A ShinkoSpainXuxue Feng QUALIFIED
David V OldroydAustraliaXuxue Feng NEGOTIATION
David I MaletRussiaBernardo Dominic QUALIFIED
Silvio X PerinRussiaAmy Elsner NEW
Isabel N SlusarskiRussiaAnna Fali NEGOTIATION
Kaitlin Z PerinCanadaOnyama Limba PROPOSAL
Claire P SlusarskiCanadaAnna Fali NEGOTIATION
Julie P ChuiRussiaAnna Fali PROPOSAL
Izzy X NestleItalyAsiya Javayant PROPOSAL
Cody Q SlusarskiItalyIoni Bowcher NEGOTIATION
Ivar M DoeSpainIoni Bowcher PROPOSAL
Maisha F WhobreyArgentinaOnyama Limba QUALIFIED
Arvin A AlbaresJapanAsiya Javayant NEW
Izzy I PoquetteRussiaXuxue Feng RENEWAL
Jones V KolmetzCanadaXuxue Feng NEGOTIATION
Jeanfrancois Y PoquetteArgentinaXuxue Feng NEGOTIATION
Darci D FlosiFranceIvan Magalhaes UNQUALIFIED
Misaki W TollnerJapanAnna Fali NEGOTIATION
Cody T WieserCanadaOnyama Limba RENEWAL
Alejandro X StensethJapanStephen Shaw NEGOTIATION
Julie D NestleRussiaAnna Fali UNQUALIFIED
Ashley L SergiGermanyOnyama Limba NEW
Maria G OldroydRussiaAsiya Javayant UNQUALIFIED
Jeanfrancois A RoysterFranceAnna Fali PROPOSAL
Cody N ChuiIndiaBernardo Dominic NEW
Leja N PaprockiIndiaAsiya Javayant QUALIFIED
Smith S AmigonArgentinaAnna Fali 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>