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
Salvatore D GauchoArgentinaXuxue Feng NEGOTIATION
Sinclair R FollerCanadaXuxue Feng RENEWAL
David R CampainBrazilIoni Bowcher RENEWAL
Greenwood A AmigonArgentinaAsiya Javayant QUALIFIED
Francesco C FlosiGermanyIvan Magalhaes RENEWAL
Wickens O RutaItalyElwin Sharvill NEGOTIATION
Rodrigues N FollerUnited KingdomAsiya Javayant QUALIFIED
Munro Q FerenczGermanyAsiya Javayant UNQUALIFIED
Misaki Q CaldareraItalyOnyama Limba NEW
James W SaylorsGermanyIoni Bowcher QUALIFIED
Greenwood B PoquetteJapanIoni Bowcher UNQUALIFIED
Smith N WaycottGermanyAnna Fali NEW
Izzy Z MacleadGermanyElwin Sharvill QUALIFIED
Maisha J CaudyCanadaIvan Magalhaes NEW
Francesco T BowleyItalyElwin Sharvill RENEWAL
Salvatore D InouyeFranceElwin Sharvill NEGOTIATION
Jennifer P SchemmerCanadaElwin Sharvill NEGOTIATION
Antonio U RoysterArgentinaElwin Sharvill NEW
Ricardo R BologniaUnited KingdomElwin Sharvill NEGOTIATION
Izzy E FerenczAustraliaXuxue Feng PROPOSAL
Rodrigues O CampainJapanElwin Sharvill UNQUALIFIED
Morrow X ButtJapanAsiya Javayant NEGOTIATION
Ashley M GillianUnited KingdomAsiya Javayant UNQUALIFIED
Maisha I PerinGermanyStephen Shaw PROPOSAL
Maria Z ShinkoArgentinaAsiya Javayant PROPOSAL
Salvatore C GlickFranceBernardo Dominic PROPOSAL
Juan L DoeCanadaAsiya Javayant QUALIFIED
Jones V PaprockiAustraliaElwin Sharvill NEGOTIATION
Maisha V KuskoFranceStephen Shaw RENEWAL
Chavez W MarrierSpainIvan Magalhaes PROPOSAL
Misaki H OldroydGermanyAmy Elsner NEGOTIATION
Jefferson S AmigonIndiaXuxue Feng RENEWAL
Tony Z GillianArgentinaElwin Sharvill UNQUALIFIED
David T BologniaUnited KingdomOnyama Limba NEGOTIATION
Clifford M RulapaughGermanyAnna Fali NEW
Ashley T WaycottJapanElwin Sharvill QUALIFIED
Smith A OldroydJapanOnyama Limba UNQUALIFIED
Salvatore A AlbaresArgentinaOnyama Limba QUALIFIED
Leon W FlosiCanadaIvan Magalhaes UNQUALIFIED
Emily F VocelkaBrazilBernardo Dominic PROPOSAL
Jeanfrancois F RulapaughUnited KingdomBernardo Dominic PROPOSAL
Ricardo T StockhamUnited KingdomIvan Magalhaes NEW
Aruna P KuskoAustraliaAnna Fali QUALIFIED
Alejandro A OldroydUnited KingdomXuxue Feng NEW
Aika T SlusarskiFranceAsiya Javayant NEGOTIATION
Isabel S KolmetzArgentinaIvan Magalhaes NEW
Julie M PaprockiIndiaAsiya Javayant RENEWAL
Munro H CaldareraCanadaElwin Sharvill QUALIFIED
Nicolas C AmigonBrazilBernardo Dominic QUALIFIED
Rodrigues Q MaletSpainAnna Fali QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Leon O DilliardUnited KingdomElwin Sharvill RENEWAL
Ivar A KuskoIndiaStephen Shaw PROPOSAL
Aditya N AlbaresJapanAnna Fali RENEWAL
Johnson G MorascaCanadaStephen Shaw PROPOSAL
Mayumi E BologniaFranceXuxue Feng RENEWAL
Aruna V WaycottJapanElwin Sharvill QUALIFIED
Adams Z FlosiJapanBernardo Dominic RENEWAL
James W SlusarskiItalyAsiya Javayant RENEWAL
Claire Y WaycottUnited KingdomXuxue Feng RENEWAL
Arvin D BowleyFranceOnyama Limba UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Antonio E FerenczUnited Kingdom2024-05-27Truhlar And Truhlar Attys NEW79Ioni Bowcher
1001David F InouyeUnited Kingdom2024-06-05Printing Dimensions UNQUALIFIED18Ivan Magalhaes
1002Alejandro Q SlusarskiGermany2024-06-20Commercial Press RENEWAL46Asiya Javayant
1003Kadeem O PaprockiJapan2024-05-24Chanay, Jeffrey A Esq PROPOSAL50Ivan Magalhaes
1004Deepesh K BowleyBrazil2024-05-24Chanay, Jeffrey A Esq PROPOSAL83Stephen Shaw
1005Isabel C MarrierUnited Kingdom2024-06-08Truhlar And Truhlar Attys UNQUALIFIED49Ioni Bowcher
1006Salvatore N SaylorsSpain2024-06-20Dorl, James J Esq QUALIFIED37Onyama Limba
1007Darci G SergiSpain2024-06-04Rousseaux, Michael Esq UNQUALIFIED72Stephen Shaw
1008Maria S MaletSpain2024-06-19Dorl, James J Esq UNQUALIFIED20Ivan Magalhaes
1009Clifford O DoeArgentina2024-05-31Buckley Miller Wright NEW12Ivan Magalhaes
1010Leon Q DilliardUnited Kingdom2024-05-26Buckley Miller Wright PROPOSAL10Elwin Sharvill
1011Adams N VocelkaArgentina2024-06-07Printing Dimensions RENEWAL46Stephen Shaw
1012Nicolas S AmigonFrance2024-06-07Chapman, Ross E Esq UNQUALIFIED67Amy Elsner
1013Jeanfrancois X NickaArgentina2024-06-16Truhlar And Truhlar Attys NEGOTIATION1Xuxue Feng
1014Kaitlin K PerinArgentina2024-06-09Chanay, Jeffrey A Esq NEW83Amy Elsner
1015Tony V MaletArgentina2024-06-21Chemel, James L Cpa RENEWAL57Onyama Limba
1016Leon P TollnerRussia2024-06-19Rangoni Of Florence QUALIFIED37Elwin Sharvill
1017Rodrigues W IturbideUnited Kingdom2024-05-30King, Christopher A Esq NEGOTIATION84Onyama Limba
1018Deepesh N PaprockiGermany2024-06-16Rousseaux, Michael Esq QUALIFIED77Elwin Sharvill
1019Francesco P BowleyCanada2024-06-11Printing Dimensions UNQUALIFIED80Ivan Magalhaes
1020Mayumi N FlosiSpain2024-05-24Feltz Printing Service NEW26Ioni Bowcher
1021Tony J NestleRussia2024-06-16Rousseaux, Michael Esq NEGOTIATION85Asiya Javayant
1022Mayumi R WhobreySpain2024-06-14King, Christopher A Esq NEW91Ioni Bowcher
1023Chavez D WieserIndia2024-05-28Dorl, James J Esq UNQUALIFIED60Asiya Javayant
1024Rodrigues F StockhamGermany2024-06-15Printing Dimensions NEW50Ioni Bowcher
1025Adams P RulapaughIndia2024-05-25Dorl, James J Esq QUALIFIED23Elwin Sharvill
1026Mujtaba T OstroskyRussia2024-06-04King, Christopher A Esq QUALIFIED93Asiya Javayant
1027Jones T MaletCanada2024-06-07Benton, John B Jr QUALIFIED77Elwin Sharvill
1028Maisha F SchemmerCanada2024-05-30Dorl, James J Esq NEW19Amy Elsner
1029Johnson P VenereJapan2024-06-10Printing Dimensions UNQUALIFIED2Ivan Magalhaes
1030Emily T KuskoRussia2024-05-24Chapman, Ross E Esq PROPOSAL49Ioni Bowcher
1031Costa D GauchoBrazil2024-05-25King, Christopher A Esq NEW55Elwin Sharvill
1032Morrow K BowleyBrazil2024-05-28Truhlar And Truhlar Attys QUALIFIED2Bernardo Dominic
1033Aruna X FigeroaFrance2024-06-22Morlong Associates NEGOTIATION15Stephen Shaw
1034Kadeem M FerenczRussia2024-06-13Feiner Bros NEGOTIATION86Elwin Sharvill
1035Costa A BriddickRussia2024-06-04Rousseaux, Michael Esq UNQUALIFIED92Anna Fali
1036Alejandro H IturbideAustralia2024-06-20Chemel, James L Cpa RENEWAL16Asiya Javayant
1037Costa H RulapaughBrazil2024-06-05Chanay, Jeffrey A Esq UNQUALIFIED55Elwin Sharvill
1038Murillo P MarrierAustralia2024-05-29Morlong Associates RENEWAL13Ivan Magalhaes
1039Jones S CaudyIndia2024-06-01Dorl, James J Esq NEW26Xuxue Feng
1040Clifford V IturbideJapan2024-05-28Chemel, James L Cpa NEW41Onyama Limba
1041Kadeem P ButtItaly2024-06-12Benton, John B Jr RENEWAL9Bernardo Dominic
1042Leja R KuskoIndia2024-05-31King, Christopher A Esq NEGOTIATION18Stephen Shaw
1043Tony S MorascaSpain2024-05-27Morlong Associates NEW31Bernardo Dominic
1044Ivar T DoeGermany2024-06-16Feiner Bros RENEWAL55Asiya Javayant
1045Sinclair X TollnerSpain2024-06-02Chanay, Jeffrey A Esq UNQUALIFIED53Asiya Javayant
1046Wickens O VenereCanada2024-06-08Commercial Press UNQUALIFIED6Onyama Limba
1047Aruna I FerenczGermany2024-06-01Feltz Printing Service UNQUALIFIED16Anna Fali
1048Chavez V RulapaughCanada2024-06-05Chapman, Ross E Esq NEGOTIATION67Amy Elsner
1049Ashley E RimSpain2024-06-07King, Christopher A Esq NEGOTIATION23Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Murillo H OstroskyBrazilAmy Elsner UNQUALIFIED
Misaki F CaudyIndiaXuxue Feng NEW
Darci F KolmetzJapanXuxue Feng RENEWAL
Alejandro P BriddickArgentinaElwin Sharvill RENEWAL
Ivar I GauchoSpainOnyama Limba UNQUALIFIED
Salvatore S GauchoCanadaElwin Sharvill UNQUALIFIED
Greenwood W VocelkaSpainOnyama Limba RENEWAL
Misaki N CaudyAustraliaAsiya Javayant UNQUALIFIED
Juan O GlickUnited KingdomIvan Magalhaes NEGOTIATION
Mayumi S GarufiRussiaAsiya Javayant RENEWAL
Chavez Q RimGermanyBernardo Dominic NEW
Chavez R GarufiBrazilAnna Fali QUALIFIED
Munro J SlusarskiGermanyAsiya Javayant NEGOTIATION
Smith J MarrierAustraliaAmy Elsner RENEWAL
Smith N BowleyUnited KingdomBernardo Dominic PROPOSAL
Faith C AlbaresCanadaAsiya Javayant RENEWAL
Adams S AlbaresCanadaXuxue Feng UNQUALIFIED
Ivar E MaletGermanyIoni Bowcher NEGOTIATION
Greenwood Z NickaAustraliaIoni Bowcher QUALIFIED
Munro A MacleadItalyOnyama Limba UNQUALIFIED
Sinclair N SergiCanadaBernardo Dominic NEW
Adams D AmigonJapanIoni Bowcher NEW
Aditya N AmigonJapanAmy Elsner NEW
Jefferson W KolmetzSpainBernardo Dominic QUALIFIED
Juan T FigeroaArgentinaIvan Magalhaes UNQUALIFIED
Smith R TollnerArgentinaAsiya Javayant NEGOTIATION
Alejandro O OldroydRussiaBernardo Dominic UNQUALIFIED
Deepesh L SaylorsFranceElwin Sharvill UNQUALIFIED
Chavez A NickaBrazilStephen Shaw UNQUALIFIED
Morrow V KolmetzIndiaIoni Bowcher PROPOSAL
Cody T MaletIndiaElwin Sharvill NEW
Aditya D KuskoFranceIvan Magalhaes NEGOTIATION
Nicolas T PoquetteFranceIoni Bowcher NEW
Jefferson E KuskoFranceAmy Elsner UNQUALIFIED
Aruna S AmigonCanadaAsiya Javayant PROPOSAL
Jennifer Y MarrierIndiaOnyama Limba PROPOSAL
Aruna Y SlusarskiArgentinaElwin Sharvill RENEWAL
Sinclair E StockhamIndiaXuxue Feng RENEWAL
Jones K AlbaresUnited KingdomAmy Elsner QUALIFIED
Ivar H StensethBrazilAsiya Javayant NEGOTIATION
Maria X CampainJapanOnyama Limba RENEWAL
Jones S FlosiItalyAmy Elsner NEGOTIATION
Ricardo R GlickItalyOnyama Limba PROPOSAL
Munro O CaldareraIndiaIoni Bowcher UNQUALIFIED
Izzy S IturbideAustraliaAmy Elsner NEW
Arvin Q CaldareraArgentinaStephen Shaw UNQUALIFIED
Octavia Y FerenczCanadaElwin Sharvill NEW
Kadeem K CaldareraRussiaElwin Sharvill UNQUALIFIED
Clifford S SaylorsAustraliaStephen Shaw RENEWAL
Kadeem F WhobreyAustraliaElwin Sharvill PROPOSAL
Frozen Columns
Name
David O Waycott
Francesco E Venere
Ivar G Stockham
Jennifer F Doe
Ricardo T Vocelka
Juan P Foller
Murillo G Ferencz
Juan U Whobrey
Munro R Malet
David M Stenseth
Smith J Flosi
Maisha B Slusarski
Leja G Maclead
Francesco L Ruta
Clifford H Tollner
Octavia E Figeroa
Jennifer L Oldroyd
Alejandro H Foller
Darci F Caudy
David H Briddick
Morrow X Figeroa
Tony R Nicka
Stacey X Stenseth
Jones E Gillian
David V Dilliard
Misaki R Maclead
Ricardo R Paprocki
Johnson U Slusarski
Cody F Albares
Arvin E Tollner
Wickens R Rulapaugh
Stacey J Campain
Tony O Amigon
Greenwood V Albares
Greenwood R Kusko
Aruna Y Garufi
Emily P Schemmer
Ricardo Z Campain
Chavez O Waycott
Alejandro Q Maclead
Leja W Morasca
Silvio Y Flosi
Alejandro H Bolognia
Isabel D Caldarera
Clifford C Ferencz
Mayumi T Stockham
Greenwood G Bolognia
Darci A Gaucho
Kaitlin Z Flosi
Francesco L Amigon
IdCountryDate
1000Australia2024-06-17
1001Spain2024-06-10
1002United Kingdom2024-06-13
1003Italy2024-05-30
1004Argentina2024-06-05
1005Canada2024-06-08
1006Italy2024-06-15
1007United Kingdom2024-06-04
1008Brazil2024-06-19
1009Canada2024-06-12
1010Germany2024-06-18
1011India2024-06-22
1012Spain2024-06-06
1013Canada2024-06-20
1014France2024-05-25
1015Canada2024-06-04
1016Canada2024-06-21
1017Argentina2024-06-04
1018Australia2024-06-14
1019Argentina2024-06-14
1020India2024-06-08
1021Germany2024-06-12
1022Russia2024-06-17
1023Canada2024-05-26
1024Russia2024-06-07
1025Russia2024-06-07
1026France2024-06-21
1027Russia2024-06-19
1028Argentina2024-06-21
1029United Kingdom2024-06-05
1030Russia2024-05-26
1031Germany2024-06-06
1032India2024-06-03
1033Argentina2024-05-25
1034India2024-06-01
1035Brazil2024-06-11
1036Canada2024-06-14
1037Russia2024-06-02
1038France2024-06-07
1039Germany2024-05-28
1040India2024-06-22
1041United Kingdom2024-06-21
1042Canada2024-06-03
1043India2024-06-22
1044Spain2024-05-29
1045United Kingdom2024-05-29
1046Canada2024-05-25
1047Brazil2024-05-27
1048France2024-06-06
1049Spain2024-06-20

On-Demand Data

NameIdCountryDate
Julie Y Amigon1000Australia2024-06-11
Arvin Y Whobrey1001Argentina2024-06-14
Aditya M Shinko1002Argentina2024-06-06
Aika B Slusarski1003United Kingdom2024-06-15
Maisha A Saylors1004Canada2024-06-07
Silvio I Dilliard1005Brazil2024-06-21
Mujtaba O Ruta1006Germany2024-06-02
Clifford X Rulapaugh1007France2024-05-26
Antonio Z Waycott1008Australia2024-06-11
Juan Q Poquette1009Italy2024-06-11
Clifford Q Oldroyd1010Japan2024-06-18
Adams Z Kusko1011Russia2024-06-14
Isabel V Caudy1012United Kingdom2024-06-18
Maria T Nestle1013Brazil2024-06-17
Aika I Glick1014Argentina2024-05-29
Cody W Whobrey1015Japan2024-06-02
Ashley I Paprocki1016France2024-05-24
Costa M Albares1017Australia2024-06-16
Johnson Y Chui1018Spain2024-06-20
Aruna M Caldarera1019United Kingdom2024-05-30
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Johnson P ButtUnited KingdomOnyama Limba UNQUALIFIED
Ashley M BriddickUnited KingdomXuxue Feng NEW
Faith I SchemmerFranceOnyama Limba PROPOSAL
Aditya U FlosiSpainOnyama Limba PROPOSAL
Tony J GauchoIndiaIoni Bowcher PROPOSAL
Maisha C CaudyArgentinaOnyama Limba NEGOTIATION
Octavia R ShinkoUnited KingdomOnyama Limba NEGOTIATION
Jeanfrancois D GauchoUnited KingdomAsiya Javayant QUALIFIED
Kadeem A MaletArgentinaIoni Bowcher NEW
Clifford R BologniaAustraliaBernardo Dominic PROPOSAL
Kadeem C RimAustraliaXuxue Feng NEW
James Y BriddickBrazilIvan Magalhaes NEW
Johnson U KolmetzBrazilIoni Bowcher NEW
Clifford P WieserItalyAmy Elsner NEW
Stacey X RoysterJapanBernardo Dominic RENEWAL
James Q FollerSpainAnna Fali RENEWAL
Misaki A PoquetteUnited KingdomAnna Fali RENEWAL
Francesco V BologniaUnited KingdomIvan Magalhaes QUALIFIED
Salvatore N CampainArgentinaAnna Fali NEW
Deepesh O RulapaughBrazilElwin Sharvill NEGOTIATION
Arvin T AmigonBrazilAnna Fali PROPOSAL
Arvin E NickaItalyXuxue Feng UNQUALIFIED
Adams D WieserJapanAsiya Javayant QUALIFIED
Aika C CaudyRussiaAsiya Javayant UNQUALIFIED
Rodrigues X BowleySpainIvan Magalhaes RENEWAL
Jones X GauchoJapanIoni Bowcher QUALIFIED
Rodrigues H VenereAustraliaBernardo Dominic NEGOTIATION
Mayumi X GarufiGermanyIvan Magalhaes NEGOTIATION
Mujtaba S InouyeUnited KingdomElwin Sharvill PROPOSAL
Jones P SchemmerIndiaIvan Magalhaes UNQUALIFIED
Stacey J MaletSpainElwin Sharvill NEW
Leja R VenereItalyOnyama Limba UNQUALIFIED
Costa Q RimGermanyAsiya Javayant QUALIFIED
Claire N CampainGermanyElwin Sharvill NEW
Octavia U StensethBrazilStephen Shaw NEW
Costa E IturbideArgentinaOnyama Limba PROPOSAL
Mujtaba W DilliardRussiaXuxue Feng PROPOSAL
Julie X MarrierJapanIvan Magalhaes QUALIFIED
Octavia F VocelkaBrazilIvan Magalhaes UNQUALIFIED
Emily B ChuiAustraliaIvan Magalhaes 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>