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
Isabel H GillianItalyIoni Bowcher QUALIFIED
Nicolas I CaldareraSpainAsiya Javayant NEGOTIATION
Darci M RoysterRussiaIvan Magalhaes PROPOSAL
Alejandro A BriddickFranceElwin Sharvill NEGOTIATION
Octavia I DoeCanadaIvan Magalhaes UNQUALIFIED
Isabel R ButtUnited KingdomStephen Shaw RENEWAL
Faith J StensethCanadaElwin Sharvill RENEWAL
Rodrigues N IturbideIndiaIoni Bowcher NEGOTIATION
Cody F KuskoRussiaXuxue Feng PROPOSAL
Adams I MaletAustraliaAsiya Javayant QUALIFIED
Stacey P NickaIndiaBernardo Dominic UNQUALIFIED
Clifford F KolmetzAustraliaAsiya Javayant NEGOTIATION
Costa R VocelkaBrazilAnna Fali QUALIFIED
Greenwood Z ShinkoRussiaAsiya Javayant UNQUALIFIED
Aditya N FlosiJapanAsiya Javayant QUALIFIED
Kaitlin Y WhobreySpainIvan Magalhaes RENEWAL
Juan E PoquetteSpainAnna Fali NEW
Ivar D VenereItalyAnna Fali NEGOTIATION
Tony G SchemmerIndiaBernardo Dominic PROPOSAL
David N GarufiArgentinaAmy Elsner NEW
Julie S VocelkaItalyIoni Bowcher PROPOSAL
Rodrigues B GillianUnited KingdomStephen Shaw RENEWAL
Ricardo A KolmetzRussiaElwin Sharvill PROPOSAL
Greenwood O DilliardFranceAnna Fali NEGOTIATION
Cody N NestleJapanIvan Magalhaes QUALIFIED
Ricardo R PaprockiRussiaElwin Sharvill UNQUALIFIED
Rodrigues O VenereSpainAmy Elsner RENEWAL
Murillo A PerinArgentinaIvan Magalhaes UNQUALIFIED
Octavia A PaprockiJapanBernardo Dominic PROPOSAL
Mayumi S BowleyJapanElwin Sharvill NEW
Darci I GauchoItalyStephen Shaw RENEWAL
Aika R MarrierAustraliaOnyama Limba PROPOSAL
Chavez Q FlosiItalyElwin Sharvill PROPOSAL
Mayumi B OldroydArgentinaOnyama Limba PROPOSAL
Silvio X MaletSpainStephen Shaw NEGOTIATION
Octavia F AlbaresGermanyBernardo Dominic QUALIFIED
Aruna F DilliardSpainElwin Sharvill NEGOTIATION
Mayumi O DarakjyFranceXuxue Feng PROPOSAL
Maria Q RutaGermanyIoni Bowcher PROPOSAL
Emily G MacleadIndiaElwin Sharvill RENEWAL
Jennifer O MorascaJapanAmy Elsner UNQUALIFIED
Mayumi N NestleSpainBernardo Dominic NEGOTIATION
Cody E RulapaughArgentinaAsiya Javayant QUALIFIED
Isabel K GlickBrazilElwin Sharvill NEW
Jones N NickaJapanStephen Shaw RENEWAL
James K ButtIndiaAnna Fali QUALIFIED
Faith Y WieserGermanyStephen Shaw PROPOSAL
Francesco P PaprockiIndiaAmy Elsner QUALIFIED
Arvin L FerenczFranceOnyama Limba NEGOTIATION
Murillo A NestleFranceStephen Shaw PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Rodrigues H CaudyJapanOnyama Limba RENEWAL
Deepesh H AmigonSpainAsiya Javayant QUALIFIED
Ashley G GauchoSpainOnyama Limba NEGOTIATION
Ivar M DilliardBrazilStephen Shaw RENEWAL
Munro P MorascaUnited KingdomXuxue Feng RENEWAL
Nicolas X NestleAustraliaOnyama Limba UNQUALIFIED
Izzy Q NestleItalyOnyama Limba QUALIFIED
Isabel B InouyeItalyIoni Bowcher RENEWAL
Isabel K FlosiSpainOnyama Limba NEW
Julie B MaletCanadaIoni Bowcher NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000James Y MarrierBrazil2026-07-20Truhlar And Truhlar Attys QUALIFIED16Anna Fali
1001Leja J GarufiRussia2026-07-25Morlong Associates UNQUALIFIED16Bernardo Dominic
1002Deepesh H FollerSpain2026-08-12King, Christopher A Esq NEW3Anna Fali
1003Morrow Z PaprockiJapan2026-07-30Dorl, James J Esq UNQUALIFIED93Ioni Bowcher
1004Silvio I FigeroaBrazil2026-07-25Buckley Miller Wright PROPOSAL52Anna Fali
1005Ashley Z GlickRussia2026-08-07Feiner Bros NEW46Xuxue Feng
1006Ivar K RoysterJapan2026-07-26Chapman, Ross E Esq QUALIFIED3Anna Fali
1007Chavez U IturbideJapan2026-08-03Chapman, Ross E Esq UNQUALIFIED96Asiya Javayant
1008Leja R MaletCanada2026-07-15Chapman, Ross E Esq NEW24Asiya Javayant
1009Smith U WieserBrazil2026-07-15Dorl, James J Esq RENEWAL73Anna Fali
1010Adams T MacleadCanada2026-07-26Printing Dimensions NEGOTIATION8Xuxue Feng
1011Tony Z ChuiBrazil2026-08-11Feiner Bros PROPOSAL8Bernardo Dominic
1012Aruna U PaprockiArgentina2026-08-11Chanay, Jeffrey A Esq NEW16Amy Elsner
1013Johnson C TollnerSpain2026-07-15King, Christopher A Esq NEGOTIATION44Elwin Sharvill
1014Darci P StensethAustralia2026-07-28Buckley Miller Wright PROPOSAL5Asiya Javayant
1015Mayumi I ShinkoJapan2026-07-14Buckley Miller Wright QUALIFIED86Stephen Shaw
1016Alejandro L PaprockiRussia2026-07-23Morlong Associates NEW45Ivan Magalhaes
1017Mujtaba C SergiArgentina2026-07-18Printing Dimensions UNQUALIFIED50Anna Fali
1018Wickens J FlosiAustralia2026-08-10Rousseaux, Michael Esq PROPOSAL86Stephen Shaw
1019Murillo U OldroydUnited Kingdom2026-07-21Rangoni Of Florence UNQUALIFIED91Bernardo Dominic
1020Johnson U ButtGermany2026-08-05Feltz Printing Service UNQUALIFIED91Onyama Limba
1021Mayumi E PaprockiFrance2026-07-20King, Christopher A Esq UNQUALIFIED37Bernardo Dominic
1022Morrow L BologniaItaly2026-07-25Truhlar And Truhlar Attys NEW35Bernardo Dominic
1023Ashley O ButtCanada2026-07-28Benton, John B Jr QUALIFIED57Elwin Sharvill
1024Smith O FlosiCanada2026-08-02Feltz Printing Service NEGOTIATION2Ioni Bowcher
1025Aruna K DoeRussia2026-07-29Chemel, James L Cpa UNQUALIFIED9Xuxue Feng
1026Maria C CaudyBrazil2026-07-19Buckley Miller Wright NEGOTIATION29Stephen Shaw
1027Deepesh D BowleyBrazil2026-07-29Commercial Press QUALIFIED32Bernardo Dominic
1028Deepesh R RulapaughItaly2026-07-28Chanay, Jeffrey A Esq PROPOSAL76Xuxue Feng
1029James Z CaldareraRussia2026-07-19Truhlar And Truhlar Attys NEW81Xuxue Feng
1030Jeanfrancois O StockhamIndia2026-07-23Chanay, Jeffrey A Esq RENEWAL76Anna Fali
1031Munro H NestleUnited Kingdom2026-07-17Printing Dimensions UNQUALIFIED91Ioni Bowcher
1032Aruna U BriddickAustralia2026-08-06Chapman, Ross E Esq UNQUALIFIED90Asiya Javayant
1033Maria Q WieserItaly2026-07-14Feltz Printing Service RENEWAL49Ivan Magalhaes
1034Leja Y VenereCanada2026-07-20Feiner Bros PROPOSAL65Ioni Bowcher
1035Julie R VocelkaRussia2026-08-10Printing Dimensions UNQUALIFIED91Elwin Sharvill
1036Sinclair A OldroydAustralia2026-08-02Printing Dimensions PROPOSAL62Xuxue Feng
1037Smith T GlickIndia2026-07-14Benton, John B Jr NEGOTIATION89Ioni Bowcher
1038Claire N ButtRussia2026-07-15King, Christopher A Esq RENEWAL97Anna Fali
1039Francesco D BriddickIndia2026-07-15Dorl, James J Esq QUALIFIED73Bernardo Dominic
1040Aika U PoquetteIndia2026-08-10Rousseaux, Michael Esq PROPOSAL96Ivan Magalhaes
1041Octavia T KuskoArgentina2026-07-31Morlong Associates UNQUALIFIED74Onyama Limba
1042Octavia A PerinIndia2026-08-09Commercial Press RENEWAL33Xuxue Feng
1043Smith M WieserUnited Kingdom2026-08-02Feiner Bros RENEWAL87Ivan Magalhaes
1044Juan L GauchoArgentina2026-07-31Printing Dimensions QUALIFIED47Stephen Shaw
1045Morrow R IturbideAustralia2026-07-31Dorl, James J Esq PROPOSAL36Stephen Shaw
1046Johnson H DilliardArgentina2026-08-09Benton, John B Jr RENEWAL3Bernardo Dominic
1047Munro N VenereGermany2026-07-15Commercial Press RENEWAL73Asiya Javayant
1048David E SchemmerIndia2026-07-20Rangoni Of Florence NEW24Onyama Limba
1049Antonio O MaletSpain2026-07-17Morlong Associates PROPOSAL60Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Misaki E RimUnited KingdomAmy Elsner UNQUALIFIED
Silvio B CampainSpainOnyama Limba RENEWAL
Misaki T GlickBrazilAnna Fali NEGOTIATION
Aruna U DilliardIndiaAmy Elsner NEGOTIATION
Leon T MarrierBrazilBernardo Dominic NEW
Francesco J DilliardGermanyIoni Bowcher QUALIFIED
Aditya G FollerFranceIoni Bowcher NEW
Arvin V NickaCanadaBernardo Dominic QUALIFIED
Munro M SlusarskiRussiaIoni Bowcher QUALIFIED
Cody G CaudyBrazilXuxue Feng NEW
Isabel O PerinIndiaElwin Sharvill NEGOTIATION
Cody J VenereIndiaElwin Sharvill PROPOSAL
Faith Q BowleyItalyXuxue Feng PROPOSAL
Mayumi B BowleyArgentinaIvan Magalhaes QUALIFIED
Smith W SergiUnited KingdomBernardo Dominic QUALIFIED
Maria C DoeRussiaIvan Magalhaes PROPOSAL
Jeanfrancois Z PoquetteSpainAsiya Javayant PROPOSAL
Ricardo L BologniaGermanyStephen Shaw NEW
Morrow H BologniaRussiaXuxue Feng UNQUALIFIED
Kadeem E GillianSpainIoni Bowcher NEGOTIATION
Deepesh S OldroydCanadaAsiya Javayant RENEWAL
Jeanfrancois P IturbideFranceElwin Sharvill NEGOTIATION
Maria Y CampainFranceIoni Bowcher RENEWAL
Smith O PaprockiGermanyAmy Elsner QUALIFIED
Isabel O VocelkaItalyAnna Fali RENEWAL
Kaitlin U StensethCanadaOnyama Limba NEGOTIATION
Jones E StensethFranceElwin Sharvill QUALIFIED
Wickens D AmigonArgentinaAmy Elsner NEGOTIATION
Leja H MacleadUnited KingdomIoni Bowcher PROPOSAL
Morrow W GillianCanadaAnna Fali QUALIFIED
Murillo H BologniaItalyXuxue Feng NEGOTIATION
Wickens M SergiIndiaElwin Sharvill QUALIFIED
Ashley Q PerinRussiaBernardo Dominic NEW
Chavez S DarakjyBrazilAsiya Javayant RENEWAL
Octavia R AmigonAustraliaAnna Fali RENEWAL
Aditya N ButtUnited KingdomStephen Shaw QUALIFIED
James U WhobreyBrazilAnna Fali NEGOTIATION
Jennifer W MaletUnited KingdomBernardo Dominic RENEWAL
Jennifer J ButtFranceAsiya Javayant PROPOSAL
Leon I KolmetzFranceAnna Fali NEW
Jones B BowleyIndiaAsiya Javayant PROPOSAL
Chavez Z MorascaJapanStephen Shaw NEGOTIATION
Antonio G AmigonArgentinaIvan Magalhaes UNQUALIFIED
Juan X PaprockiAustraliaElwin Sharvill NEW
Wickens S SergiBrazilStephen Shaw NEGOTIATION
Kadeem D GlickItalyAsiya Javayant RENEWAL
Sinclair E KuskoBrazilOnyama Limba PROPOSAL
Stacey T RutaGermanyXuxue Feng RENEWAL
Faith F ShinkoGermanyAmy Elsner QUALIFIED
Maisha V InouyeFranceAmy Elsner RENEWAL
Frozen Columns
Name
Kaitlin X Rulapaugh
Claire A Caudy
Antonio N Malet
Mujtaba J Figeroa
Arvin B Glick
Deepesh Z Rim
Aditya B Paprocki
Cody E Venere
Julie U Nicka
Juan L Maclead
Leon Z Malet
Kadeem G Ostrosky
Jones Q Royster
Faith U Tollner
Morrow O Caudy
Sinclair M Glick
Isabel R Inouye
Emily O Maclead
Mujtaba W Vocelka
Clifford C Flosi
Clifford X Iturbide
Clifford J Iturbide
Octavia U Inouye
Maria U Vocelka
Murillo Q Sergi
Darci Q Bolognia
Emily G Venere
Darci I Glick
Jennifer L Butt
Munro L Sergi
Jeanfrancois P Shinko
Aruna R Marrier
Leon T Slusarski
Silvio F Sergi
Jefferson D Ferencz
Maisha U Ruta
Greenwood G Paprocki
Jeanfrancois P Albares
Jennifer S Morasca
Misaki X Rim
Isabel T Garufi
Jeanfrancois D Glick
Mayumi T Ruta
Stacey X Glick
Mujtaba K Oldroyd
Nicolas J Slusarski
Francesco B Kusko
Maria Q Rim
Jennifer K Ruta
David W Kusko
IdCountryDate
1000India2026-08-04
1001Brazil2026-07-23
1002India2026-07-15
1003Argentina2026-08-05
1004Italy2026-07-25
1005Spain2026-07-17
1006Argentina2026-07-30
1007Brazil2026-08-08
1008Spain2026-08-12
1009Germany2026-07-20
1010Brazil2026-08-07
1011Australia2026-07-14
1012United Kingdom2026-07-23
1013Russia2026-07-22
1014United Kingdom2026-07-22
1015Spain2026-07-19
1016Canada2026-07-28
1017Russia2026-08-06
1018France2026-08-08
1019India2026-08-09
1020India2026-07-16
1021Australia2026-07-25
1022Brazil2026-08-07
1023Japan2026-07-19
1024United Kingdom2026-07-18
1025Canada2026-07-23
1026Spain2026-07-26
1027Canada2026-07-28
1028France2026-08-05
1029Brazil2026-07-31
1030Spain2026-08-10
1031France2026-07-29
1032Russia2026-07-30
1033Brazil2026-08-09
1034France2026-08-11
1035Italy2026-08-02
1036Brazil2026-07-28
1037Russia2026-08-05
1038Italy2026-07-31
1039Brazil2026-07-26
1040India2026-08-01
1041Japan2026-07-17
1042France2026-08-06
1043Canada2026-08-03
1044Canada2026-07-22
1045Canada2026-08-03
1046Japan2026-07-20
1047Argentina2026-07-27
1048France2026-07-23
1049Germany2026-07-30

On-Demand Data

NameIdCountryDate
Murillo J Glick1000Germany2026-07-23
Octavia L Whobrey1001Brazil2026-07-21
Leon D Ruta1002Spain2026-07-22
Wickens S Albares1003France2026-08-01
Julie N Whobrey1004Italy2026-07-22
Darci F Rulapaugh1005United Kingdom2026-07-27
Emily Y Garufi1006Brazil2026-08-10
Jennifer T Bolognia1007Italy2026-07-20
Maria K Paprocki1008Canada2026-08-03
Wickens E Rulapaugh1009United Kingdom2026-07-25
Arvin L Figeroa1010Canada2026-07-24
Murillo D Sergi1011Italy2026-07-26
Izzy T Flosi1012Canada2026-07-29
Julie Z Rim1013Brazil2026-08-04
Smith Q Darakjy1014Argentina2026-07-23
Leja W Gillian1015United Kingdom2026-07-20
Adams Y Gillian1016Japan2026-08-04
Salvatore W Garufi1017United Kingdom2026-08-05
Octavia Q Rulapaugh1018France2026-08-04
James L Briddick1019Brazil2026-07-29
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jennifer F GillianGermanyBernardo Dominic QUALIFIED
Costa Z GillianCanadaIvan Magalhaes RENEWAL
Juan C GlickGermanyAsiya Javayant NEGOTIATION
Aditya L OstroskyArgentinaStephen Shaw UNQUALIFIED
Wickens T ButtJapanIoni Bowcher RENEWAL
Murillo D SlusarskiUnited KingdomIoni Bowcher NEW
Jennifer W WieserGermanyBernardo Dominic UNQUALIFIED
Aika Y AmigonItalyIoni Bowcher PROPOSAL
Misaki W ShinkoArgentinaBernardo Dominic UNQUALIFIED
Adams W MaletArgentinaOnyama Limba RENEWAL
Emily M BriddickIndiaAmy Elsner QUALIFIED
Leon F BologniaItalyAmy Elsner PROPOSAL
Adams D DarakjyJapanElwin Sharvill UNQUALIFIED
Mayumi M RulapaughBrazilBernardo Dominic NEW
Greenwood N SchemmerCanadaAnna Fali QUALIFIED
Clifford T FlosiBrazilBernardo Dominic NEW
Stacey I VenereFranceIoni Bowcher NEW
Costa M MorascaJapanElwin Sharvill QUALIFIED
Chavez Y GillianArgentinaBernardo Dominic RENEWAL
Aruna Z MaletIndiaAnna Fali PROPOSAL
Leja I WieserSpainAnna Fali PROPOSAL
Ivar Z PerinItalyAmy Elsner QUALIFIED
Mayumi J OldroydBrazilAmy Elsner UNQUALIFIED
Francesco N DoeItalyAsiya Javayant NEW
Ashley G SchemmerSpainAsiya Javayant RENEWAL
Costa H BowleyJapanOnyama Limba RENEWAL
Mayumi P WaycottUnited KingdomIoni Bowcher PROPOSAL
Izzy X GarufiCanadaIoni Bowcher PROPOSAL
Salvatore K FerenczArgentinaIvan Magalhaes NEW
Salvatore D ShinkoRussiaIvan Magalhaes QUALIFIED
Misaki C WaycottJapanStephen Shaw NEW
Maisha W GlickAustraliaOnyama Limba NEGOTIATION
Nicolas G ButtFranceStephen Shaw RENEWAL
Leja P NickaIndiaAmy Elsner NEGOTIATION
Ashley O FigeroaSpainIoni Bowcher NEGOTIATION
Isabel B InouyeRussiaAnna Fali PROPOSAL
Maisha M PaprockiItalyAnna Fali RENEWAL
Stacey S SaylorsCanadaIoni Bowcher QUALIFIED
Smith M CaudyIndiaXuxue Feng QUALIFIED
Claire I GarufiArgentinaIoni Bowcher NEGOTIATION

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