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
Faith E SaylorsItalyAsiya Javayant PROPOSAL
Isabel X CaldareraItalyStephen Shaw PROPOSAL
Maisha R BologniaAustraliaElwin Sharvill UNQUALIFIED
Sinclair S ShinkoJapanOnyama Limba UNQUALIFIED
Francesco E MaletItalyStephen Shaw RENEWAL
Mujtaba A NickaItalyIoni Bowcher NEW
Munro V VocelkaRussiaAnna Fali RENEWAL
Murillo Y KolmetzArgentinaIvan Magalhaes UNQUALIFIED
Mayumi Y DoeJapanIoni Bowcher NEW
Darci I DarakjyJapanIvan Magalhaes RENEWAL
Julie A RutaAustraliaBernardo Dominic UNQUALIFIED
Faith B OldroydIndiaIvan Magalhaes NEGOTIATION
Misaki F FlosiAustraliaAmy Elsner PROPOSAL
Adams Q DilliardSpainIvan Magalhaes QUALIFIED
Cody T TollnerGermanyAnna Fali NEGOTIATION
Izzy S ShinkoJapanOnyama Limba PROPOSAL
Kadeem H ChuiBrazilXuxue Feng QUALIFIED
Johnson N DilliardAustraliaOnyama Limba UNQUALIFIED
David E GarufiUnited KingdomIoni Bowcher NEW
Maisha G PoquetteAustraliaBernardo Dominic RENEWAL
Kaitlin C FlosiFranceAsiya Javayant UNQUALIFIED
Octavia W WieserFranceAmy Elsner PROPOSAL
Cody F DarakjyRussiaStephen Shaw RENEWAL
Juan I ShinkoGermanyIoni Bowcher RENEWAL
Leja B DarakjyIndiaXuxue Feng RENEWAL
Francesco R InouyeUnited KingdomOnyama Limba QUALIFIED
Darci K InouyeUnited KingdomAmy Elsner UNQUALIFIED
James Q SlusarskiIndiaBernardo Dominic NEW
Alejandro R PoquetteGermanyAmy Elsner PROPOSAL
Izzy C WaycottArgentinaAsiya Javayant RENEWAL
Wickens Q MaletItalyAmy Elsner UNQUALIFIED
Wickens B GarufiSpainBernardo Dominic NEW
Morrow Z ButtAustraliaAnna Fali UNQUALIFIED
Maisha Q FigeroaIndiaStephen Shaw PROPOSAL
Smith C SlusarskiItalyAnna Fali PROPOSAL
Ivar U IturbideFranceIoni Bowcher QUALIFIED
Rodrigues M DarakjyRussiaElwin Sharvill NEW
Maisha W MorascaJapanXuxue Feng QUALIFIED
Emily Q ShinkoIndiaAsiya Javayant NEGOTIATION
Mayumi T RutaRussiaIvan Magalhaes PROPOSAL
Stacey K StockhamSpainAnna Fali NEW
Jennifer T DarakjyCanadaAnna Fali PROPOSAL
Antonio P RulapaughSpainBernardo Dominic NEW
Emily M CaldareraIndiaStephen Shaw NEGOTIATION
Jeanfrancois J FigeroaCanadaBernardo Dominic PROPOSAL
Julie T DoeJapanStephen Shaw PROPOSAL
Deepesh S CampainCanadaIvan Magalhaes PROPOSAL
Adams Q FerenczGermanyAsiya Javayant NEW
David Y FigeroaRussiaAsiya Javayant NEGOTIATION
Izzy P SergiBrazilXuxue Feng QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Alejandro W NestleGermanyBernardo Dominic RENEWAL
Munro D WieserBrazilElwin Sharvill RENEWAL
Rodrigues I SergiBrazilStephen Shaw NEGOTIATION
Jeanfrancois K AmigonAustraliaAsiya Javayant RENEWAL
Morrow Z NestleGermanyElwin Sharvill QUALIFIED
Kadeem K MorascaAustraliaIoni Bowcher NEW
Jeanfrancois S BowleyIndiaAmy Elsner PROPOSAL
Ivar Q SlusarskiGermanyAsiya Javayant PROPOSAL
Aruna W PaprockiFranceAmy Elsner PROPOSAL
Greenwood I WieserRussiaIoni Bowcher NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Clifford R IturbideGermany2025-06-02Commercial Press NEW96Xuxue Feng
1001Murillo B ButtArgentina2025-05-21Printing Dimensions QUALIFIED25Bernardo Dominic
1002Tony V DoeRussia2025-05-20Dorl, James J Esq NEGOTIATION47Xuxue Feng
1003Leon F DarakjyJapan2025-06-15Chapman, Ross E Esq PROPOSAL91Onyama Limba
1004Izzy V WaycottCanada2025-06-03Chapman, Ross E Esq NEW42Bernardo Dominic
1005Maisha Z RimCanada2025-06-10Rousseaux, Michael Esq PROPOSAL30Asiya Javayant
1006James Y CaldareraSpain2025-05-28Feiner Bros NEW25Bernardo Dominic
1007Murillo U RutaJapan2025-06-01Rangoni Of Florence NEGOTIATION44Ivan Magalhaes
1008Julie W GarufiGermany2025-05-25Truhlar And Truhlar Attys RENEWAL28Elwin Sharvill
1009Isabel O KolmetzGermany2025-06-09Truhlar And Truhlar Attys QUALIFIED13Stephen Shaw
1010Greenwood O GarufiItaly2025-06-08Printing Dimensions UNQUALIFIED94Elwin Sharvill
1011Tony Y SaylorsUnited Kingdom2025-05-27Feiner Bros PROPOSAL35Ioni Bowcher
1012Faith C KolmetzItaly2025-05-28Morlong Associates UNQUALIFIED11Elwin Sharvill
1013Arvin P RoysterRussia2025-06-13King, Christopher A Esq QUALIFIED93Amy Elsner
1014Maisha I GarufiJapan2025-05-25Commercial Press NEW68Ioni Bowcher
1015Nicolas T ChuiRussia2025-06-04Chanay, Jeffrey A Esq RENEWAL69Anna Fali
1016Nicolas N AmigonBrazil2025-06-04Feltz Printing Service PROPOSAL0Xuxue Feng
1017Clifford O StensethAustralia2025-05-28Rousseaux, Michael Esq UNQUALIFIED47Anna Fali
1018Isabel D IturbideUnited Kingdom2025-06-04Rangoni Of Florence PROPOSAL28Onyama Limba
1019James T FigeroaArgentina2025-06-09Truhlar And Truhlar Attys QUALIFIED11Asiya Javayant
1020Greenwood R PoquetteFrance2025-06-12Morlong Associates NEGOTIATION3Ivan Magalhaes
1021Antonio M StensethSpain2025-06-15Truhlar And Truhlar Attys NEW36Asiya Javayant
1022Rodrigues H RoysterIndia2025-05-21Feiner Bros NEGOTIATION45Ioni Bowcher
1023Nicolas D InouyeGermany2025-06-05Commercial Press UNQUALIFIED47Asiya Javayant
1024Jeanfrancois X OldroydBrazil2025-06-02Truhlar And Truhlar Attys NEGOTIATION91Elwin Sharvill
1025Kaitlin W FigeroaItaly2025-06-09Commercial Press PROPOSAL91Elwin Sharvill
1026Izzy C WaycottGermany2025-05-22Feiner Bros PROPOSAL41Onyama Limba
1027Salvatore F AmigonArgentina2025-05-25Chemel, James L Cpa PROPOSAL74Xuxue Feng
1028Greenwood I CampainJapan2025-06-10Feiner Bros QUALIFIED24Asiya Javayant
1029Ivar B KolmetzIndia2025-06-10Chanay, Jeffrey A Esq NEGOTIATION7Amy Elsner
1030Mujtaba V MaletJapan2025-06-12Feltz Printing Service NEW25Bernardo Dominic
1031Deepesh T ShinkoRussia2025-05-18Morlong Associates NEGOTIATION58Anna Fali
1032Mujtaba H SaylorsSpain2025-05-26Chanay, Jeffrey A Esq PROPOSAL58Asiya Javayant
1033Wickens Q GarufiIndia2025-05-30Chapman, Ross E Esq PROPOSAL5Xuxue Feng
1034Jones R RoysterArgentina2025-05-24Rangoni Of Florence UNQUALIFIED76Asiya Javayant
1035Misaki J FigeroaIndia2025-05-25Rousseaux, Michael Esq RENEWAL29Amy Elsner
1036Aruna I KolmetzIndia2025-06-04Chapman, Ross E Esq NEGOTIATION46Onyama Limba
1037Ashley J KolmetzArgentina2025-06-12Chanay, Jeffrey A Esq PROPOSAL5Asiya Javayant
1038Stacey C KuskoBrazil2025-05-28Truhlar And Truhlar Attys UNQUALIFIED28Amy Elsner
1039Izzy E TollnerAustralia2025-06-02Morlong Associates PROPOSAL79Onyama Limba
1040Kadeem B KuskoUnited Kingdom2025-05-31Buckley Miller Wright QUALIFIED87Anna Fali
1041Julie C PoquetteBrazil2025-06-04Rousseaux, Michael Esq PROPOSAL93Stephen Shaw
1042Maisha F DoeArgentina2025-05-18Feltz Printing Service PROPOSAL43Asiya Javayant
1043Julie X PaprockiItaly2025-05-30Buckley Miller Wright NEGOTIATION32Ivan Magalhaes
1044Aditya L BriddickFrance2025-05-24Rangoni Of Florence QUALIFIED88Asiya Javayant
1045Mujtaba X PoquetteGermany2025-05-18Chemel, James L Cpa NEGOTIATION65Ivan Magalhaes
1046Tony S PaprockiAustralia2025-06-16Feiner Bros RENEWAL43Asiya Javayant
1047Ashley U DilliardAustralia2025-05-19Chapman, Ross E Esq QUALIFIED95Stephen Shaw
1048Isabel Q KuskoRussia2025-05-30Truhlar And Truhlar Attys RENEWAL65Ivan Magalhaes
1049Silvio W PerinAustralia2025-05-22Morlong Associates NEW56Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Faith J MacleadIndiaIvan Magalhaes UNQUALIFIED
Aruna L SlusarskiUnited KingdomElwin Sharvill PROPOSAL
Mayumi Z DarakjyCanadaAmy Elsner RENEWAL
Kaitlin X TollnerSpainIoni Bowcher NEW
Wickens B BowleyBrazilXuxue Feng NEGOTIATION
Smith N IturbideCanadaOnyama Limba QUALIFIED
Misaki I WaycottIndiaElwin Sharvill PROPOSAL
Francesco Y TollnerBrazilAsiya Javayant NEGOTIATION
Francesco V RutaItalyOnyama Limba NEGOTIATION
Kaitlin G WhobreyArgentinaAnna Fali PROPOSAL
Smith R SaylorsAustraliaAmy Elsner NEW
Wickens E MarrierArgentinaAmy Elsner QUALIFIED
Stacey Z BologniaCanadaXuxue Feng QUALIFIED
Alejandro A RulapaughItalyIoni Bowcher PROPOSAL
Jeanfrancois N GauchoJapanAnna Fali RENEWAL
Smith W RoysterRussiaIoni Bowcher RENEWAL
Kaitlin S MacleadSpainAsiya Javayant NEGOTIATION
Claire C OldroydGermanyElwin Sharvill NEGOTIATION
Jefferson U RutaArgentinaIvan Magalhaes RENEWAL
Juan X AmigonUnited KingdomXuxue Feng RENEWAL
Salvatore G MorascaJapanOnyama Limba NEGOTIATION
Morrow K DilliardAustraliaIvan Magalhaes NEGOTIATION
Tony Y KuskoJapanAnna Fali QUALIFIED
Jeanfrancois D VenereCanadaAnna Fali NEGOTIATION
Murillo V RulapaughItalyBernardo Dominic NEGOTIATION
Ricardo A DilliardAustraliaIoni Bowcher UNQUALIFIED
Munro H BowleyItalyBernardo Dominic RENEWAL
Kaitlin G CampainIndiaAsiya Javayant QUALIFIED
Emily O CaldareraArgentinaIvan Magalhaes PROPOSAL
Nicolas Q SchemmerUnited KingdomAsiya Javayant QUALIFIED
Munro Y GauchoFranceBernardo Dominic PROPOSAL
Jeanfrancois M WaycottGermanyElwin Sharvill RENEWAL
Costa R SergiUnited KingdomIvan Magalhaes NEGOTIATION
Aditya U AlbaresIndiaIvan Magalhaes NEW
James T BriddickSpainBernardo Dominic UNQUALIFIED
Aditya C VenereBrazilStephen Shaw NEGOTIATION
Mujtaba Z ChuiFranceIoni Bowcher NEW
Jeanfrancois K DarakjyGermanyAnna Fali QUALIFIED
Darci C PerinCanadaOnyama Limba NEGOTIATION
Octavia M GillianAustraliaStephen Shaw NEGOTIATION
Kaitlin A BologniaJapanStephen Shaw RENEWAL
Salvatore N OldroydArgentinaXuxue Feng NEW
Aditya F StockhamCanadaBernardo Dominic UNQUALIFIED
Mujtaba G PoquetteArgentinaXuxue Feng PROPOSAL
Julie H DilliardCanadaIoni Bowcher UNQUALIFIED
Claire N AlbaresRussiaElwin Sharvill NEGOTIATION
Jennifer J CaldareraAustraliaAmy Elsner NEGOTIATION
Juan U DarakjyFranceAsiya Javayant UNQUALIFIED
Salvatore O RoysterJapanAsiya Javayant NEW
Cody E CampainItalyAmy Elsner RENEWAL
Frozen Columns
Name
Claire Y Stenseth
Nicolas F Vocelka
Nicolas H Bowley
Greenwood Z Flosi
Aika F Ostrosky
Antonio M Saylors
Ivar B Ruta
Aditya Y Royster
Leon V Nestle
Maisha D Morasca
Leon R Perin
Aika Z Ferencz
Izzy G Oldroyd
Clifford W Poquette
Johnson T Schemmer
Jefferson G Foller
Leja E Stenseth
Kaitlin W Caudy
Smith G Glick
Isabel H Stenseth
Jennifer P Kusko
Deepesh V Ostrosky
Francesco G Royster
Francesco G Royster
Chavez J Rulapaugh
Wickens E Shinko
Faith T Poquette
Jones D Whobrey
Mujtaba P Kolmetz
Wickens C Gillian
Leja Z Gillian
Silvio H Rim
Ivar Q Kusko
Jefferson H Marrier
Tony A Morasca
Darci K Whobrey
Rodrigues N Venere
Antonio V Marrier
Stacey P Vocelka
Aruna V Stenseth
Deepesh Z Chui
Julie O Slusarski
Costa V Amigon
Aditya R Chui
Arvin L Nicka
Salvatore G Marrier
Francesco D Oldroyd
Chavez B Wieser
Misaki B Glick
Tony N Ostrosky
IdCountryDate
1000Spain2025-05-28
1001Germany2025-06-04
1002Brazil2025-06-12
1003Canada2025-06-12
1004Germany2025-05-26
1005Australia2025-06-06
1006France2025-05-25
1007Spain2025-05-27
1008Australia2025-06-06
1009France2025-05-20
1010Argentina2025-05-19
1011Brazil2025-05-21
1012Japan2025-06-11
1013Japan2025-06-03
1014Canada2025-06-10
1015India2025-05-21
1016Canada2025-05-28
1017Italy2025-06-09
1018India2025-05-25
1019Argentina2025-05-24
1020Brazil2025-06-01
1021Argentina2025-06-02
1022Argentina2025-06-04
1023India2025-06-08
1024Brazil2025-05-22
1025Russia2025-06-15
1026India2025-05-23
1027United Kingdom2025-06-05
1028Russia2025-06-05
1029Canada2025-06-09
1030Spain2025-06-10
1031United Kingdom2025-06-14
1032France2025-05-26
1033United Kingdom2025-06-02
1034India2025-05-19
1035United Kingdom2025-05-29
1036Spain2025-05-21
1037Germany2025-06-02
1038India2025-06-15
1039Spain2025-06-04
1040Germany2025-06-14
1041Brazil2025-06-08
1042Canada2025-05-19
1043Russia2025-05-20
1044Japan2025-05-23
1045Russia2025-06-01
1046Italy2025-06-10
1047Russia2025-05-28
1048Argentina2025-06-07
1049Australia2025-06-06

On-Demand Data

NameIdCountryDate
Izzy V Perin1000Germany2025-06-04
Munro N Royster1001Canada2025-06-15
Salvatore E Chui1002Australia2025-05-21
Stacey N Whobrey1003Italy2025-05-18
Morrow W Dilliard1004India2025-06-14
Ivar A Malet1005Argentina2025-06-03
Darci K Marrier1006France2025-06-09
Rodrigues C Kusko1007Russia2025-05-21
Greenwood W Marrier1008Argentina2025-06-15
Costa D Paprocki1009Australia2025-06-13
Leon L Kolmetz1010France2025-05-22
Misaki A Nicka1011India2025-06-03
Greenwood T Campain1012Spain2025-05-18
Tony F Glick1013Australia2025-06-16
Smith L Waycott1014Australia2025-05-23
Munro W Royster1015Canada2025-06-15
Octavia A Saylors1016India2025-05-26
Cody I Malet1017Brazil2025-05-25
Cody P Albares1018Canada2025-05-22
Ricardo D Rim1019Japan2025-06-15
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Johnson D PaprockiGermanyStephen Shaw RENEWAL
Arvin T DilliardSpainAsiya Javayant UNQUALIFIED
Octavia M WieserCanadaIoni Bowcher NEW
Silvio Y OldroydBrazilAsiya Javayant NEGOTIATION
Leja A FerenczArgentinaOnyama Limba RENEWAL
Kadeem M WaycottArgentinaElwin Sharvill NEW
Maria A AlbaresIndiaAnna Fali UNQUALIFIED
Maria A ChuiUnited KingdomIvan Magalhaes RENEWAL
Greenwood I ButtArgentinaElwin Sharvill NEW
Costa D FerenczSpainAnna Fali NEW
Silvio P DoeUnited KingdomIoni Bowcher NEGOTIATION
Leja G RulapaughItalyElwin Sharvill PROPOSAL
Julie Y CaldareraIndiaAsiya Javayant QUALIFIED
Francesco C PoquetteJapanAnna Fali PROPOSAL
Antonio B FollerJapanAsiya Javayant NEGOTIATION
Faith B GillianJapanIoni Bowcher NEW
Tony K CampainItalyIvan Magalhaes RENEWAL
Misaki T IturbideSpainAnna Fali PROPOSAL
Mayumi W StockhamSpainAsiya Javayant NEW
Leon L DarakjyArgentinaIvan Magalhaes UNQUALIFIED
Stacey N WhobreyAustraliaAnna Fali QUALIFIED
Ashley G DilliardIndiaXuxue Feng NEW
Jeanfrancois V CaldareraRussiaXuxue Feng QUALIFIED
Claire Y CaldareraSpainAmy Elsner QUALIFIED
Emily V FerenczUnited KingdomElwin Sharvill NEW
Isabel Y MaletUnited KingdomElwin Sharvill PROPOSAL
Morrow D WhobreyItalyBernardo Dominic NEGOTIATION
Kaitlin H AmigonArgentinaAmy Elsner NEW
Ivar R TollnerBrazilStephen Shaw UNQUALIFIED
Isabel E FigeroaFranceAsiya Javayant NEW
Ivar Y AmigonJapanBernardo Dominic PROPOSAL
James Q RulapaughRussiaAmy Elsner RENEWAL
Deepesh S GarufiItalyOnyama Limba QUALIFIED
Costa X WieserBrazilElwin Sharvill QUALIFIED
Stacey K KuskoUnited KingdomIvan Magalhaes QUALIFIED
Silvio N DarakjyBrazilIoni Bowcher NEW
Aditya Q SaylorsUnited KingdomIvan Magalhaes RENEWAL
Jefferson P WieserFranceStephen Shaw QUALIFIED
Mujtaba S SlusarskiArgentinaIvan Magalhaes QUALIFIED
Wickens Z PerinRussiaAmy Elsner PROPOSAL

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