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 O OstroskyItalyXuxue Feng PROPOSAL
Rodrigues O FlosiAustraliaIoni Bowcher NEGOTIATION
Julie B RoysterJapanIoni Bowcher NEGOTIATION
Johnson G FlosiItalyElwin Sharvill NEW
Johnson W BologniaFranceAmy Elsner PROPOSAL
Darci N RulapaughGermanyAmy Elsner NEGOTIATION
Leja R FlosiArgentinaIvan Magalhaes NEW
Stacey I CaldareraIndiaIoni Bowcher NEGOTIATION
Maria M BowleyBrazilElwin Sharvill PROPOSAL
Misaki O KuskoJapanBernardo Dominic NEGOTIATION
Aditya V FigeroaArgentinaAsiya Javayant NEW
Jefferson W NickaIndiaIvan Magalhaes RENEWAL
Misaki M BowleyIndiaBernardo Dominic RENEWAL
David K MaletCanadaXuxue Feng RENEWAL
Salvatore J NickaJapanAsiya Javayant UNQUALIFIED
Mujtaba G CaldareraItalyIvan Magalhaes RENEWAL
Jones P GlickIndiaBernardo Dominic NEW
Alejandro L GarufiIndiaAsiya Javayant RENEWAL
Maisha P RutaRussiaAnna Fali UNQUALIFIED
Emily D PoquetteFranceAnna Fali PROPOSAL
Kadeem F CampainIndiaAmy Elsner NEGOTIATION
Ivar R WhobreyFranceBernardo Dominic UNQUALIFIED
Ricardo X KuskoGermanyXuxue Feng RENEWAL
Ivar R RutaGermanyAmy Elsner NEGOTIATION
Costa J MaletIndiaIoni Bowcher PROPOSAL
Clifford F RoysterRussiaIoni Bowcher UNQUALIFIED
Rodrigues G BologniaUnited KingdomXuxue Feng QUALIFIED
Kaitlin A MorascaArgentinaIvan Magalhaes NEW
Sinclair I StockhamIndiaXuxue Feng PROPOSAL
Arvin J GarufiCanadaIoni Bowcher UNQUALIFIED
Kaitlin Q RoysterJapanAmy Elsner NEGOTIATION
Isabel P AlbaresAustraliaAmy Elsner QUALIFIED
Jennifer J IturbideSpainXuxue Feng UNQUALIFIED
Octavia N StensethAustraliaOnyama Limba PROPOSAL
Emily V BowleyRussiaAsiya Javayant UNQUALIFIED
Maria H RoysterArgentinaIoni Bowcher RENEWAL
Leon L DarakjyArgentinaAmy Elsner RENEWAL
Misaki H MacleadAustraliaIoni Bowcher NEGOTIATION
Arvin A KolmetzFranceStephen Shaw PROPOSAL
Faith Y WhobreySpainStephen Shaw UNQUALIFIED
Chavez W AmigonUnited KingdomStephen Shaw NEW
Adams U FigeroaIndiaBernardo Dominic NEGOTIATION
Faith T BriddickBrazilAnna Fali PROPOSAL
Aruna R RimJapanXuxue Feng QUALIFIED
Aika H BowleySpainOnyama Limba UNQUALIFIED
Leon N ShinkoRussiaAsiya Javayant NEW
Darci K RimIndiaOnyama Limba RENEWAL
Aruna R RutaRussiaStephen Shaw PROPOSAL
Costa W SchemmerIndiaXuxue Feng QUALIFIED
Jefferson I WaycottIndiaAsiya Javayant QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Rodrigues Y WieserCanadaElwin Sharvill RENEWAL
Arvin V KolmetzItalyElwin Sharvill PROPOSAL
Nicolas B SchemmerIndiaIvan Magalhaes PROPOSAL
Arvin T WieserSpainAsiya Javayant PROPOSAL
Faith J KuskoAustraliaXuxue Feng NEW
Arvin U MarrierSpainXuxue Feng RENEWAL
Aika T OldroydArgentinaAnna Fali NEGOTIATION
Mayumi U VenereBrazilXuxue Feng UNQUALIFIED
Smith V GillianFranceStephen Shaw PROPOSAL
Faith V TollnerBrazilXuxue Feng PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Stacey G AmigonGermany2025-05-31Benton, John B Jr QUALIFIED45Amy Elsner
1001Isabel R GillianAustralia2025-06-11Buckley Miller Wright RENEWAL87Xuxue Feng
1002Antonio P TollnerItaly2025-06-10Benton, John B Jr UNQUALIFIED96Onyama Limba
1003Juan F GlickCanada2025-05-19Benton, John B Jr PROPOSAL71Stephen Shaw
1004Ivar O NickaAustralia2025-06-12King, Christopher A Esq PROPOSAL96Anna Fali
1005Antonio Z DarakjySpain2025-06-13Benton, John B Jr RENEWAL24Amy Elsner
1006Izzy H DilliardAustralia2025-05-24King, Christopher A Esq RENEWAL90Stephen Shaw
1007Wickens F DarakjyRussia2025-05-30Chapman, Ross E Esq NEGOTIATION65Stephen Shaw
1008Arvin W BriddickRussia2025-06-05Rousseaux, Michael Esq QUALIFIED35Ivan Magalhaes
1009Leja X RimRussia2025-05-25Chemel, James L Cpa QUALIFIED2Ivan Magalhaes
1010David O FlosiGermany2025-06-13Benton, John B Jr NEW78Stephen Shaw
1011Ivar G GauchoFrance2025-05-31King, Christopher A Esq NEW60Xuxue Feng
1012Smith R ButtUnited Kingdom2025-06-12King, Christopher A Esq UNQUALIFIED56Ivan Magalhaes
1013Jennifer P WaycottAustralia2025-06-01Buckley Miller Wright UNQUALIFIED13Anna Fali
1014Darci R NestleUnited Kingdom2025-05-21Truhlar And Truhlar Attys NEGOTIATION79Bernardo Dominic
1015Greenwood E RoysterArgentina2025-05-20Rousseaux, Michael Esq PROPOSAL89Xuxue Feng
1016Kadeem Y DilliardGermany2025-06-01Buckley Miller Wright QUALIFIED40Onyama Limba
1017Smith W WhobreyGermany2025-06-13Chapman, Ross E Esq RENEWAL45Amy Elsner
1018Darci Z KolmetzUnited Kingdom2025-05-31Buckley Miller Wright PROPOSAL17Onyama Limba
1019Izzy H FollerArgentina2025-05-19Chapman, Ross E Esq QUALIFIED53Xuxue Feng
1020Emily E MaletAustralia2025-05-24Feiner Bros RENEWAL52Stephen Shaw
1021Munro Q MorascaAustralia2025-06-12Chanay, Jeffrey A Esq UNQUALIFIED32Asiya Javayant
1022Juan R FerenczFrance2025-06-11Rousseaux, Michael Esq PROPOSAL76Onyama Limba
1023Costa R AmigonAustralia2025-05-18Feiner Bros QUALIFIED96Stephen Shaw
1024Ivar B OldroydAustralia2025-05-26Chapman, Ross E Esq QUALIFIED39Xuxue Feng
1025Ashley R WaycottUnited Kingdom2025-06-05Chapman, Ross E Esq UNQUALIFIED63Amy Elsner
1026Kadeem B VocelkaRussia2025-05-23Dorl, James J Esq NEW74Stephen Shaw
1027Cody K NickaBrazil2025-06-10Rangoni Of Florence QUALIFIED32Elwin Sharvill
1028Alejandro Q VocelkaSpain2025-05-19Truhlar And Truhlar Attys UNQUALIFIED55Anna Fali
1029Juan F WaycottFrance2025-06-04Buckley Miller Wright NEGOTIATION71Xuxue Feng
1030David T FerenczUnited Kingdom2025-06-13Benton, John B Jr NEW17Ivan Magalhaes
1031Isabel B BowleyGermany2025-06-14Rangoni Of Florence PROPOSAL29Anna Fali
1032Tony T CampainFrance2025-06-16Dorl, James J Esq NEW45Asiya Javayant
1033Johnson X KuskoGermany2025-06-16Buckley Miller Wright NEGOTIATION89Xuxue Feng
1034Costa K KuskoSpain2025-05-18Chemel, James L Cpa NEGOTIATION20Amy Elsner
1035Emily A FigeroaArgentina2025-06-07Commercial Press NEW45Elwin Sharvill
1036Nicolas F MacleadCanada2025-06-13Benton, John B Jr UNQUALIFIED21Elwin Sharvill
1037Leon C MorascaRussia2025-06-11Rousseaux, Michael Esq RENEWAL21Stephen Shaw
1038Stacey W MorascaSpain2025-05-25Rangoni Of Florence UNQUALIFIED11Ioni Bowcher
1039Faith R FerenczUnited Kingdom2025-06-10Chanay, Jeffrey A Esq RENEWAL73Bernardo Dominic
1040Murillo P KuskoSpain2025-05-20Benton, John B Jr UNQUALIFIED4Anna Fali
1041Mayumi F GlickArgentina2025-06-05Rousseaux, Michael Esq RENEWAL76Anna Fali
1042Antonio F MaletBrazil2025-06-03Chapman, Ross E Esq QUALIFIED49Asiya Javayant
1043Mujtaba B MacleadArgentina2025-06-14Feltz Printing Service PROPOSAL83Stephen Shaw
1044Munro U OldroydGermany2025-05-31Printing Dimensions UNQUALIFIED48Asiya Javayant
1045Jeanfrancois K GarufiCanada2025-06-01Morlong Associates PROPOSAL99Xuxue Feng
1046Leja X KuskoGermany2025-06-07Truhlar And Truhlar Attys RENEWAL69Stephen Shaw
1047Jones F OstroskyRussia2025-06-10Buckley Miller Wright NEGOTIATION68Ivan Magalhaes
1048Smith R FlosiUnited Kingdom2025-06-11Truhlar And Truhlar Attys PROPOSAL7Elwin Sharvill
1049Misaki Z FlosiAustralia2025-05-22Feltz Printing Service NEGOTIATION60Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Murillo N InouyeFranceAnna Fali PROPOSAL
Silvio G AlbaresArgentinaAmy Elsner PROPOSAL
Salvatore K TollnerAustraliaStephen Shaw QUALIFIED
Stacey R SlusarskiCanadaXuxue Feng PROPOSAL
Jefferson M ChuiCanadaAnna Fali NEW
Octavia D PaprockiGermanyIoni Bowcher NEW
Ricardo G FigeroaBrazilAnna Fali UNQUALIFIED
Aruna A ShinkoArgentinaIoni Bowcher RENEWAL
Julie S ButtAustraliaAmy Elsner UNQUALIFIED
Costa M MorascaUnited KingdomStephen Shaw RENEWAL
Antonio O FigeroaArgentinaIoni Bowcher QUALIFIED
Adams R NestleItalyIvan Magalhaes RENEWAL
Faith C FigeroaBrazilIoni Bowcher NEW
Chavez E KolmetzAustraliaIoni Bowcher PROPOSAL
Kadeem J MorascaIndiaOnyama Limba QUALIFIED
Leja C ShinkoArgentinaElwin Sharvill QUALIFIED
Rodrigues R FerenczJapanBernardo Dominic RENEWAL
Isabel F BologniaSpainBernardo Dominic NEW
Julie S MaletItalyXuxue Feng NEGOTIATION
Wickens L KuskoUnited KingdomBernardo Dominic RENEWAL
Murillo X NestleIndiaIoni Bowcher NEW
Kaitlin W StensethSpainAmy Elsner NEGOTIATION
Arvin Q WieserAustraliaIoni Bowcher PROPOSAL
Smith Y FollerSpainIoni Bowcher NEGOTIATION
Juan C DarakjySpainAnna Fali QUALIFIED
Aika Q NestleAustraliaXuxue Feng QUALIFIED
Faith B GillianUnited KingdomBernardo Dominic NEW
Ashley U GillianGermanyAmy Elsner PROPOSAL
Chavez H AlbaresSpainAmy Elsner QUALIFIED
Aditya P MorascaCanadaElwin Sharvill NEW
Isabel O BologniaIndiaXuxue Feng PROPOSAL
Jones K WieserRussiaAmy Elsner RENEWAL
Salvatore J SlusarskiAustraliaBernardo Dominic NEGOTIATION
Morrow B FlosiJapanXuxue Feng UNQUALIFIED
Tony C MarrierFranceBernardo Dominic PROPOSAL
Octavia L CaudyGermanyElwin Sharvill QUALIFIED
Aika Y MaletRussiaAnna Fali RENEWAL
Rodrigues L GlickRussiaAsiya Javayant PROPOSAL
Maria V WhobreyAustraliaAmy Elsner NEGOTIATION
Jeanfrancois P GlickGermanyAnna Fali NEGOTIATION
Antonio N MaletUnited KingdomAmy Elsner UNQUALIFIED
Cody C SchemmerItalyAmy Elsner RENEWAL
Jennifer E DoeRussiaAsiya Javayant RENEWAL
Ricardo C MaletSpainAnna Fali RENEWAL
Kadeem N CampainUnited KingdomStephen Shaw NEW
Silvio I SergiRussiaAsiya Javayant PROPOSAL
Francesco V ShinkoRussiaAsiya Javayant RENEWAL
Francesco G VocelkaAustraliaOnyama Limba QUALIFIED
James T StockhamUnited KingdomAnna Fali RENEWAL
Octavia K BologniaRussiaOnyama Limba NEW
Frozen Columns
Name
Ricardo Z Malet
Misaki F Poquette
Smith L Royster
Silvio F Malet
Francesco S Briddick
Adams I Nestle
Rodrigues N Tollner
Jeanfrancois F Stockham
Claire Y Morasca
David A Caudy
Greenwood L Caudy
Salvatore F Campain
Silvio Q Malet
Wickens W Wieser
David R Chui
Wickens E Iturbide
Leja Z Waycott
Jefferson Q Wieser
Aruna U Whobrey
Murillo E Ruta
Wickens Q Flosi
Leon D Kusko
David E Kolmetz
Darci C Garufi
Darci H Flosi
Emily T Vocelka
Juan A Bolognia
Kaitlin W Caudy
Mayumi B Royster
Clifford Q Slusarski
Jefferson L Kusko
Wickens C Iturbide
Maisha Q Stockham
Ashley P Flosi
Murillo X Rim
Ivar N Schemmer
Antonio G Perin
Greenwood N Bolognia
Antonio Z Foller
Antonio W Slusarski
Isabel R Ferencz
Arvin U Iturbide
Morrow J Flosi
Jones I Ruta
Aika O Poquette
Greenwood H Bowley
Deepesh E Garufi
Misaki Z Inouye
Chavez Q Whobrey
Kaitlin R Bolognia
IdCountryDate
1000Australia2025-05-20
1001Brazil2025-06-03
1002France2025-06-16
1003Russia2025-06-16
1004Argentina2025-06-02
1005India2025-05-30
1006United Kingdom2025-06-06
1007Spain2025-06-01
1008India2025-06-11
1009France2025-06-05
1010France2025-06-15
1011Canada2025-05-22
1012Canada2025-06-02
1013Japan2025-05-21
1014Italy2025-06-11
1015Canada2025-06-12
1016Japan2025-05-27
1017Germany2025-05-25
1018Canada2025-06-04
1019Argentina2025-05-22
1020Spain2025-06-02
1021Italy2025-06-05
1022Brazil2025-05-27
1023India2025-06-04
1024Canada2025-06-06
1025France2025-06-02
1026Canada2025-05-19
1027Russia2025-06-02
1028Canada2025-05-22
1029Italy2025-06-14
1030Australia2025-06-02
1031Canada2025-06-07
1032Germany2025-05-18
1033Canada2025-05-27
1034Spain2025-05-31
1035India2025-06-11
1036Australia2025-05-30
1037India2025-06-16
1038Spain2025-06-09
1039Brazil2025-05-23
1040France2025-06-09
1041Russia2025-06-05
1042India2025-06-11
1043Brazil2025-06-15
1044Japan2025-06-08
1045Argentina2025-06-04
1046Spain2025-05-22
1047United Kingdom2025-05-21
1048France2025-05-28
1049Russia2025-06-10

On-Demand Data

NameIdCountryDate
Ricardo A Saylors1000Russia2025-05-19
James Y Tollner1001Japan2025-05-18
Stacey F Gaucho1002United Kingdom2025-06-09
Stacey Q Flosi1003India2025-05-21
Aruna V Figeroa1004Australia2025-06-15
Arvin N Garufi1005Argentina2025-05-19
Maisha W Ferencz1006Japan2025-05-18
Salvatore B Caudy1007Canada2025-06-01
Mujtaba N Kolmetz1008Spain2025-05-24
Jeanfrancois V Kolmetz1009Australia2025-05-21
Aika F Whobrey1010Australia2025-05-23
Kadeem Q Perin1011United Kingdom2025-06-16
Cody Z Gillian1012Germany2025-06-03
Claire L Waycott1013Japan2025-06-13
Ivar S Wieser1014Germany2025-06-11
Aditya D Nicka1015Argentina2025-06-05
Deepesh O Wieser1016France2025-06-06
David A Morasca1017Russia2025-05-29
Ivar F Dilliard1018Russia2025-06-14
Wickens P Garufi1019Australia2025-06-01
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Adams H ShinkoGermanyAsiya Javayant PROPOSAL
Julie K PerinGermanyIoni Bowcher RENEWAL
Aditya P RoysterFranceStephen Shaw PROPOSAL
Chavez U GlickIndiaIvan Magalhaes UNQUALIFIED
Julie A PoquetteFranceAnna Fali NEGOTIATION
Octavia Z FlosiGermanyIvan Magalhaes NEGOTIATION
Costa I ButtRussiaBernardo Dominic QUALIFIED
Mayumi Q AlbaresItalyStephen Shaw UNQUALIFIED
Ivar I WhobreyCanadaOnyama Limba UNQUALIFIED
Murillo H TollnerBrazilIvan Magalhaes RENEWAL
Jefferson N WaycottAustraliaAmy Elsner PROPOSAL
Jones A GauchoGermanyOnyama Limba NEW
Maria A PerinBrazilAmy Elsner PROPOSAL
Clifford E KolmetzAustraliaIvan Magalhaes NEGOTIATION
Morrow A MarrierIndiaOnyama Limba RENEWAL
Wickens S PaprockiJapanStephen Shaw NEW
Jeanfrancois F AlbaresJapanIoni Bowcher QUALIFIED
Kaitlin J MaletFranceOnyama Limba NEW
Aruna N DoeFranceOnyama Limba PROPOSAL
Morrow D FerenczUnited KingdomXuxue Feng NEGOTIATION
Jefferson G BriddickRussiaOnyama Limba QUALIFIED
Munro O WieserGermanyXuxue Feng NEGOTIATION
Kadeem V MorascaCanadaIvan Magalhaes NEW
David P AmigonRussiaAmy Elsner NEGOTIATION
Claire G GauchoJapanOnyama Limba NEW
Jefferson W IturbideJapanStephen Shaw NEW
Isabel R IturbideAustraliaOnyama Limba QUALIFIED
Aika V MaletArgentinaElwin Sharvill UNQUALIFIED
Julie O DilliardJapanOnyama Limba PROPOSAL
Leja A DarakjyUnited KingdomAnna Fali QUALIFIED
Aditya O BriddickGermanyIoni Bowcher NEW
Aruna W RutaSpainAnna Fali PROPOSAL
Jefferson F NestleGermanyIoni Bowcher NEW
Jeanfrancois T BologniaGermanyBernardo Dominic PROPOSAL
Ivar K SaylorsBrazilIvan Magalhaes RENEWAL
Chavez N WieserJapanAnna Fali QUALIFIED
Octavia R TollnerRussiaBernardo Dominic PROPOSAL
Jeanfrancois O BologniaArgentinaOnyama Limba NEGOTIATION
Antonio D SchemmerArgentinaStephen Shaw QUALIFIED
Antonio M SaylorsSpainIoni Bowcher RENEWAL

<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>