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
Alejandro U CaldareraUnited KingdomIvan Magalhaes QUALIFIED
Wickens H RimGermanyBernardo Dominic NEGOTIATION
Aika B NestleUnited KingdomAsiya Javayant UNQUALIFIED
Maria P MaletGermanyIvan Magalhaes QUALIFIED
Aika R NickaIndiaIoni Bowcher QUALIFIED
Ivar X KolmetzRussiaAsiya Javayant RENEWAL
Misaki E FigeroaFranceXuxue Feng RENEWAL
Salvatore B RulapaughItalyXuxue Feng NEW
Leja Y OstroskyIndiaElwin Sharvill RENEWAL
Nicolas Y DilliardSpainElwin Sharvill UNQUALIFIED
Kadeem G GillianJapanAsiya Javayant PROPOSAL
Jefferson E ButtBrazilXuxue Feng RENEWAL
Smith G BriddickSpainXuxue Feng PROPOSAL
Silvio O WaycottSpainAnna Fali UNQUALIFIED
Wickens P ButtBrazilAsiya Javayant QUALIFIED
Juan E WhobreyBrazilIoni Bowcher PROPOSAL
Jones N SergiItalyAsiya Javayant NEW
Claire F CampainRussiaIoni Bowcher NEGOTIATION
Octavia O GillianSpainAmy Elsner QUALIFIED
Smith O KuskoSpainBernardo Dominic RENEWAL
Aruna K GlickCanadaBernardo Dominic QUALIFIED
Alejandro T RulapaughSpainAsiya Javayant NEW
Mujtaba D PerinRussiaIoni Bowcher QUALIFIED
Ashley Z DilliardRussiaXuxue Feng QUALIFIED
Izzy V IturbideGermanyXuxue Feng UNQUALIFIED
Tony A VenereItalyStephen Shaw UNQUALIFIED
Leja T RutaGermanyAnna Fali PROPOSAL
Wickens M OldroydCanadaIvan Magalhaes RENEWAL
Nicolas X SchemmerItalyBernardo Dominic NEGOTIATION
Sinclair P MaletIndiaElwin Sharvill NEW
James E SchemmerArgentinaIvan Magalhaes QUALIFIED
Arvin O WaycottIndiaAnna Fali NEGOTIATION
Jefferson F GlickUnited KingdomXuxue Feng PROPOSAL
Arvin A FollerFranceXuxue Feng RENEWAL
Silvio P SlusarskiCanadaXuxue Feng NEW
Izzy V DoeSpainXuxue Feng NEW
Emily I VenereBrazilXuxue Feng QUALIFIED
Wickens G PaprockiUnited KingdomIoni Bowcher NEW
Antonio V FerenczSpainXuxue Feng RENEWAL
Greenwood D InouyeAustraliaIoni Bowcher NEW
Emily N FlosiIndiaAnna Fali RENEWAL
Izzy R SlusarskiItalyAmy Elsner PROPOSAL
Chavez O MarrierIndiaElwin Sharvill NEW
Maria S AlbaresArgentinaAmy Elsner NEGOTIATION
Salvatore V ButtIndiaElwin Sharvill RENEWAL
Mayumi H TollnerFranceAsiya Javayant RENEWAL
Salvatore H FigeroaRussiaElwin Sharvill PROPOSAL
Stacey D MaletGermanyAsiya Javayant NEGOTIATION
Aruna N AmigonArgentinaXuxue Feng UNQUALIFIED
Nicolas L InouyeCanadaOnyama Limba RENEWAL
Horizontal
NameCountryRepresentativeStatus
Juan Q RulapaughBrazilAnna Fali PROPOSAL
Darci O SlusarskiFranceAmy Elsner PROPOSAL
Rodrigues C BologniaItalyAsiya Javayant NEGOTIATION
Isabel M TollnerAustraliaAnna Fali PROPOSAL
Sinclair B KuskoArgentinaStephen Shaw NEW
Isabel W GillianSpainIvan Magalhaes RENEWAL
Ivar S InouyeRussiaAmy Elsner NEGOTIATION
Misaki U DarakjyCanadaElwin Sharvill PROPOSAL
James A CampainFranceStephen Shaw UNQUALIFIED
Morrow Q DarakjyArgentinaXuxue Feng UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Silvio L TollnerArgentina2025-06-01Truhlar And Truhlar Attys RENEWAL61Amy Elsner
1001James Z ChuiRussia2025-05-18Buckley Miller Wright PROPOSAL50Bernardo Dominic
1002Izzy M PaprockiSpain2025-06-14Chanay, Jeffrey A Esq NEGOTIATION1Amy Elsner
1003Stacey N VocelkaRussia2025-06-12Buckley Miller Wright QUALIFIED47Bernardo Dominic
1004Morrow T SergiCanada2025-05-22Buckley Miller Wright PROPOSAL23Onyama Limba
1005James W KolmetzCanada2025-05-24Rousseaux, Michael Esq PROPOSAL21Ioni Bowcher
1006Izzy U KuskoAustralia2025-06-12Commercial Press NEW18Anna Fali
1007Faith P NickaAustralia2025-06-01Chapman, Ross E Esq QUALIFIED26Onyama Limba
1008David Y AmigonArgentina2025-05-19Feiner Bros NEGOTIATION37Xuxue Feng
1009Deepesh X AmigonArgentina2025-05-31Buckley Miller Wright PROPOSAL89Ioni Bowcher
1010Alejandro Z ButtIndia2025-05-19Chapman, Ross E Esq PROPOSAL45Amy Elsner
1011Octavia H StockhamAustralia2025-06-06Buckley Miller Wright PROPOSAL73Bernardo Dominic
1012Arvin P AlbaresSpain2025-06-07Feltz Printing Service NEGOTIATION18Anna Fali
1013Francesco T TollnerCanada2025-05-24Commercial Press RENEWAL11Asiya Javayant
1014Leja M BologniaArgentina2025-06-11Commercial Press QUALIFIED79Ivan Magalhaes
1015Adams N DilliardRussia2025-06-06Rousseaux, Michael Esq RENEWAL67Xuxue Feng
1016Octavia G SergiItaly2025-06-14Morlong Associates PROPOSAL98Ioni Bowcher
1017Misaki T WieserCanada2025-06-12Truhlar And Truhlar Attys NEGOTIATION92Stephen Shaw
1018Maria G CaudyCanada2025-06-08Printing Dimensions RENEWAL61Ivan Magalhaes
1019Octavia S AlbaresArgentina2025-05-24Buckley Miller Wright NEGOTIATION99Stephen Shaw
1020Aika W BriddickItaly2025-06-02Commercial Press NEGOTIATION14Anna Fali
1021Kadeem G SaylorsItaly2025-06-10King, Christopher A Esq UNQUALIFIED18Ivan Magalhaes
1022Silvio L MorascaSpain2025-05-23Rousseaux, Michael Esq QUALIFIED53Onyama Limba
1023Johnson Z OstroskyIndia2025-05-31Morlong Associates QUALIFIED58Asiya Javayant
1024Smith Q AlbaresBrazil2025-05-24Truhlar And Truhlar Attys UNQUALIFIED62Onyama Limba
1025Jefferson U InouyeSpain2025-05-29Buckley Miller Wright RENEWAL75Ivan Magalhaes
1026Jennifer H OldroydAustralia2025-06-15Rangoni Of Florence NEW73Bernardo Dominic
1027Jefferson O RulapaughJapan2025-06-08Benton, John B Jr UNQUALIFIED68Anna Fali
1028Smith V VocelkaAustralia2025-06-07Morlong Associates NEW41Ivan Magalhaes
1029Nicolas P VenereBrazil2025-05-21Chanay, Jeffrey A Esq QUALIFIED37Ioni Bowcher
1030Silvio G GillianIndia2025-05-19Rangoni Of Florence UNQUALIFIED58Bernardo Dominic
1031Kadeem V AlbaresItaly2025-05-30King, Christopher A Esq RENEWAL70Ivan Magalhaes
1032Leja O RoysterFrance2025-05-28Feltz Printing Service QUALIFIED29Xuxue Feng
1033Cody G IturbideGermany2025-06-13Truhlar And Truhlar Attys UNQUALIFIED27Onyama Limba
1034Kaitlin G MorascaItaly2025-05-18Buckley Miller Wright NEGOTIATION77Anna Fali
1035Tony O BowleyCanada2025-06-12Truhlar And Truhlar Attys QUALIFIED20Asiya Javayant
1036Mayumi R NickaSpain2025-05-25Chemel, James L Cpa PROPOSAL21Ioni Bowcher
1037Deepesh F CampainIndia2025-06-05Feiner Bros QUALIFIED23Onyama Limba
1038Clifford S NickaFrance2025-05-21King, Christopher A Esq PROPOSAL81Ioni Bowcher
1039Silvio J CaldareraFrance2025-06-12Feltz Printing Service NEW61Ivan Magalhaes
1040Aika H PerinGermany2025-06-15Chapman, Ross E Esq RENEWAL72Elwin Sharvill
1041Misaki R KuskoGermany2025-06-16Chanay, Jeffrey A Esq QUALIFIED98Ioni Bowcher
1042Nicolas O ChuiCanada2025-05-31Chapman, Ross E Esq QUALIFIED80Bernardo Dominic
1043David H GarufiSpain2025-05-31Commercial Press PROPOSAL94Ivan Magalhaes
1044Stacey B TollnerIndia2025-06-16Chapman, Ross E Esq NEGOTIATION41Asiya Javayant
1045Francesco M WieserJapan2025-06-10Dorl, James J Esq UNQUALIFIED23Anna Fali
1046Jones Z KuskoCanada2025-06-11Commercial Press NEGOTIATION20Ioni Bowcher
1047Salvatore D GauchoJapan2025-05-20Feiner Bros NEW30Asiya Javayant
1048Silvio H ShinkoRussia2025-05-24Benton, John B Jr RENEWAL80Elwin Sharvill
1049Isabel O SergiArgentina2025-05-22Chemel, James L Cpa NEW30Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Wickens J CaldareraBrazilIvan Magalhaes NEW
Sinclair E StockhamBrazilBernardo Dominic QUALIFIED
Julie F GillianGermanyElwin Sharvill PROPOSAL
Ashley X ShinkoRussiaAsiya Javayant NEW
Sinclair E PoquetteFranceElwin Sharvill QUALIFIED
Jones E TollnerUnited KingdomAnna Fali NEW
Arvin U DarakjyIndiaAnna Fali NEGOTIATION
Aika R FigeroaUnited KingdomOnyama Limba UNQUALIFIED
Maisha P SlusarskiFranceAmy Elsner NEW
Darci E DilliardRussiaAnna Fali PROPOSAL
Leon F NickaGermanyXuxue Feng NEW
Chavez C GauchoFranceXuxue Feng UNQUALIFIED
Deepesh M CaldareraBrazilBernardo Dominic QUALIFIED
Ashley I FerenczBrazilElwin Sharvill NEW
Adams Y BologniaItalyIoni Bowcher UNQUALIFIED
Wickens L FlosiCanadaAnna Fali UNQUALIFIED
Isabel R GauchoRussiaXuxue Feng RENEWAL
Wickens W SchemmerRussiaOnyama Limba UNQUALIFIED
Greenwood O AmigonUnited KingdomAmy Elsner PROPOSAL
Kaitlin B SlusarskiGermanyStephen Shaw NEW
Rodrigues E GillianSpainAnna Fali QUALIFIED
Ashley H TollnerAustraliaOnyama Limba NEGOTIATION
Morrow U SlusarskiCanadaXuxue Feng NEW
Francesco Q KuskoSpainXuxue Feng PROPOSAL
Jeanfrancois E SchemmerRussiaBernardo Dominic RENEWAL
Chavez D SergiItalyBernardo Dominic NEW
Cody I PoquetteAustraliaIoni Bowcher PROPOSAL
Claire I MarrierSpainElwin Sharvill NEGOTIATION
Nicolas Q SergiItalyOnyama Limba QUALIFIED
Stacey W BriddickBrazilStephen Shaw QUALIFIED
Izzy Q BologniaGermanyAsiya Javayant UNQUALIFIED
Sinclair C RulapaughIndiaOnyama Limba RENEWAL
Salvatore X AlbaresUnited KingdomAnna Fali NEW
Juan B AmigonGermanyAsiya Javayant RENEWAL
Aditya Z FerenczJapanIoni Bowcher QUALIFIED
Arvin K BowleyGermanyAmy Elsner RENEWAL
Mayumi Q AlbaresAustraliaElwin Sharvill NEGOTIATION
Aika O CaldareraRussiaIvan Magalhaes NEW
Deepesh R PoquetteItalyStephen Shaw NEW
Deepesh B PerinArgentinaBernardo Dominic NEGOTIATION
Adams D DarakjyRussiaOnyama Limba PROPOSAL
Leon A IturbideUnited KingdomIoni Bowcher PROPOSAL
Faith Z MorascaAustraliaAmy Elsner PROPOSAL
Kadeem R FerenczRussiaAsiya Javayant UNQUALIFIED
Octavia Y WieserSpainOnyama Limba UNQUALIFIED
Mayumi M FlosiIndiaIoni Bowcher NEW
Faith K AmigonUnited KingdomAsiya Javayant QUALIFIED
Kadeem G MaletJapanBernardo Dominic UNQUALIFIED
Kadeem K PerinJapanXuxue Feng NEW
Leon Y PoquetteAustraliaAnna Fali NEW
Frozen Columns
Name
David K Garufi
Morrow P Sergi
Ricardo C Caudy
Arvin E Nicka
Murillo L Flosi
Jefferson B Ruta
Costa V Nestle
Johnson F Dilliard
Salvatore D Waycott
Antonio L Ostrosky
Ashley V Albares
Rodrigues W Campain
Mujtaba B Bowley
Maria L Wieser
Mayumi F Albares
Greenwood S Venere
Jefferson V Gillian
Aruna L Kusko
Alejandro W Caldarera
Chavez V Shinko
Rodrigues Q Briddick
Faith U Morasca
Chavez K Waycott
Juan F Marrier
Kaitlin B Royster
Francesco D Caldarera
Isabel S Flosi
Deepesh Y Vocelka
Jones V Albares
Greenwood Q Campain
Jennifer L Foller
Jones P Rulapaugh
Jennifer S Flosi
Maisha G Rulapaugh
Emily G Malet
Darci U Chui
Arvin C Gaucho
Mujtaba N Caudy
Aditya Y Marrier
Adams X Kusko
Chavez M Bowley
Deepesh G Tollner
Sinclair E Oldroyd
Chavez R Ostrosky
Maisha G Oldroyd
Aruna S Venere
Jennifer U Whobrey
Mujtaba A Ruta
James B Tollner
Claire E Stenseth
IdCountryDate
1000France2025-05-25
1001United Kingdom2025-05-31
1002Brazil2025-05-25
1003Brazil2025-06-08
1004United Kingdom2025-06-01
1005Canada2025-05-22
1006Australia2025-06-15
1007Spain2025-05-31
1008France2025-06-09
1009Germany2025-06-16
1010Russia2025-06-01
1011Spain2025-06-09
1012United Kingdom2025-05-21
1013Brazil2025-06-09
1014India2025-05-22
1015Brazil2025-06-16
1016Russia2025-05-30
1017Canada2025-05-28
1018France2025-06-10
1019United Kingdom2025-06-09
1020Japan2025-05-26
1021Russia2025-06-13
1022Japan2025-05-28
1023France2025-06-09
1024Canada2025-05-25
1025France2025-06-10
1026France2025-05-30
1027Brazil2025-06-04
1028Argentina2025-05-20
1029Canada2025-06-03
1030Australia2025-05-18
1031Italy2025-05-24
1032United Kingdom2025-05-28
1033Argentina2025-06-09
1034Argentina2025-05-19
1035India2025-05-18
1036France2025-06-14
1037Argentina2025-06-06
1038Australia2025-05-31
1039Spain2025-06-06
1040Germany2025-06-14
1041India2025-05-22
1042Russia2025-06-11
1043Canada2025-05-21
1044Argentina2025-05-19
1045Spain2025-05-28
1046Germany2025-05-27
1047India2025-06-10
1048Canada2025-06-11
1049Argentina2025-05-31

On-Demand Data

NameIdCountryDate
Faith O Nestle1000Japan2025-06-04
James P Perin1001Argentina2025-06-01
Adams W Morasca1002Canada2025-05-21
Jones K Campain1003Spain2025-05-18
Leon R Poquette1004Australia2025-05-31
Cody T Stockham1005India2025-06-04
Clifford M Ruta1006France2025-06-04
Jones I Morasca1007Australia2025-06-14
Antonio M Figeroa1008Japan2025-06-03
Silvio O Paprocki1009Argentina2025-05-22
Faith B Nicka1010United Kingdom2025-05-20
Smith V Wieser1011Germany2025-06-11
Aditya Q Shinko1012Argentina2025-06-09
Alejandro K Ferencz1013Russia2025-06-10
Antonio P Saylors1014Japan2025-06-07
Stacey H Dilliard1015Japan2025-06-13
James C Wieser1016Argentina2025-06-11
David E Venere1017Argentina2025-05-19
David V Slusarski1018Australia2025-06-12
Izzy F Bolognia1019Australia2025-05-22
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Kaitlin K DarakjyFranceStephen Shaw NEGOTIATION
Stacey Y GauchoArgentinaXuxue Feng RENEWAL
Deepesh F GillianJapanAsiya Javayant NEGOTIATION
Jeanfrancois P BologniaSpainAsiya Javayant QUALIFIED
Smith C DoeJapanAsiya Javayant NEW
Jefferson I SlusarskiArgentinaIoni Bowcher NEGOTIATION
Morrow X CaudyItalyElwin Sharvill NEW
Aruna H DilliardBrazilOnyama Limba QUALIFIED
Leja H MaletJapanOnyama Limba UNQUALIFIED
Stacey V StockhamItalyAsiya Javayant QUALIFIED
Jeanfrancois E PoquetteBrazilAnna Fali RENEWAL
Clifford I InouyeCanadaIoni Bowcher NEW
David E NickaItalyXuxue Feng NEW
Octavia P WaycottRussiaIoni Bowcher UNQUALIFIED
Silvio J MorascaRussiaElwin Sharvill RENEWAL
Sinclair C GlickFranceIoni Bowcher NEW
Chavez R GarufiGermanyOnyama Limba UNQUALIFIED
Ashley B BriddickAustraliaIoni Bowcher RENEWAL
Costa R GillianUnited KingdomBernardo Dominic QUALIFIED
Jefferson M MaletBrazilStephen Shaw RENEWAL
Silvio S CaldareraSpainElwin Sharvill UNQUALIFIED
Mujtaba S RulapaughItalyStephen Shaw UNQUALIFIED
Jones K NestleRussiaBernardo Dominic RENEWAL
Clifford Q BologniaAustraliaAnna Fali QUALIFIED
Misaki I CaldareraIndiaBernardo Dominic NEW
James J DarakjyIndiaIoni Bowcher PROPOSAL
Munro T PerinGermanyStephen Shaw QUALIFIED
Alejandro X ShinkoBrazilIvan Magalhaes UNQUALIFIED
Jennifer A AmigonAustraliaBernardo Dominic PROPOSAL
Silvio K CampainAustraliaIoni Bowcher NEGOTIATION
David G FlosiIndiaStephen Shaw UNQUALIFIED
Julie W SchemmerBrazilAmy Elsner NEGOTIATION
Jennifer Q PoquetteFranceIoni Bowcher QUALIFIED
Darci S NickaFranceAnna Fali UNQUALIFIED
Misaki N CaldareraGermanyElwin Sharvill QUALIFIED
Nicolas R GauchoFranceElwin Sharvill PROPOSAL
Smith H ShinkoGermanyAnna Fali NEGOTIATION
Murillo E MaletRussiaXuxue Feng NEGOTIATION
Maisha U AmigonUnited KingdomOnyama Limba RENEWAL
Isabel O RulapaughIndiaXuxue 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>