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
Deepesh I RimSpainIoni Bowcher NEW
Wickens Y RimCanadaStephen Shaw QUALIFIED
Emily R BowleyRussiaXuxue Feng QUALIFIED
Jones V TollnerRussiaIvan Magalhaes NEGOTIATION
Tony W AmigonCanadaAsiya Javayant QUALIFIED
Jeanfrancois D ChuiGermanyElwin Sharvill NEGOTIATION
Aika F CaudyBrazilBernardo Dominic RENEWAL
Jones O KolmetzJapanOnyama Limba UNQUALIFIED
Salvatore O CampainUnited KingdomElwin Sharvill PROPOSAL
Misaki S PerinArgentinaIoni Bowcher RENEWAL
Chavez Z CaudyGermanyIoni Bowcher NEGOTIATION
James R FigeroaSpainAnna Fali UNQUALIFIED
Clifford P MacleadIndiaStephen Shaw NEGOTIATION
Juan L MaletAustraliaAsiya Javayant RENEWAL
Misaki C TollnerUnited KingdomIoni Bowcher PROPOSAL
Stacey K PaprockiArgentinaAmy Elsner NEGOTIATION
Faith U MaletRussiaAmy Elsner NEW
Emily E IturbideRussiaElwin Sharvill NEGOTIATION
Antonio N RimCanadaBernardo Dominic RENEWAL
Adams Q IturbideUnited KingdomIvan Magalhaes NEW
Nicolas Y FerenczFranceStephen Shaw UNQUALIFIED
Greenwood V RoysterAustraliaElwin Sharvill UNQUALIFIED
Leja Z FollerFranceBernardo Dominic UNQUALIFIED
Aditya P GarufiRussiaAnna Fali PROPOSAL
Leja K DilliardAustraliaAnna Fali PROPOSAL
Leja C AlbaresUnited KingdomBernardo Dominic PROPOSAL
Maria S GarufiGermanyOnyama Limba RENEWAL
Munro J RutaBrazilStephen Shaw NEW
Jefferson G AlbaresCanadaAmy Elsner UNQUALIFIED
Tony M WhobreyGermanyStephen Shaw PROPOSAL
Adams N WhobreyIndiaElwin Sharvill NEW
Nicolas D PerinIndiaAnna Fali PROPOSAL
Deepesh Q BriddickFranceAnna Fali NEW
Morrow K MacleadFranceElwin Sharvill NEW
Morrow Y OldroydUnited KingdomAmy Elsner PROPOSAL
Aika Y RulapaughGermanyIvan Magalhaes QUALIFIED
Silvio S MacleadArgentinaXuxue Feng RENEWAL
Alejandro M CaldareraItalyIvan Magalhaes PROPOSAL
Aika C SaylorsItalyIvan Magalhaes NEGOTIATION
Clifford Z NestleFranceStephen Shaw NEGOTIATION
Morrow Y GlickItalyAmy Elsner QUALIFIED
Chavez B WhobreyBrazilOnyama Limba NEW
Ivar N InouyeJapanAsiya Javayant NEW
James Q PerinFranceBernardo Dominic NEGOTIATION
Alejandro T FerenczIndiaStephen Shaw NEGOTIATION
Leja B BriddickGermanyXuxue Feng UNQUALIFIED
Salvatore Z PerinUnited KingdomOnyama Limba QUALIFIED
Mujtaba W BriddickUnited KingdomStephen Shaw NEW
Faith R ShinkoBrazilOnyama Limba NEW
Nicolas Y DoeIndiaIoni Bowcher RENEWAL
Horizontal
NameCountryRepresentativeStatus
Salvatore T NickaUnited KingdomAnna Fali PROPOSAL
Julie J SaylorsArgentinaAnna Fali RENEWAL
Leon J KuskoCanadaAsiya Javayant PROPOSAL
Claire L MarrierGermanyAmy Elsner RENEWAL
Murillo E BologniaFranceAmy Elsner QUALIFIED
Jeanfrancois Q MarrierFranceBernardo Dominic RENEWAL
Cody E TollnerAustraliaXuxue Feng UNQUALIFIED
Deepesh U WieserSpainAmy Elsner UNQUALIFIED
Leja S FlosiGermanyIvan Magalhaes PROPOSAL
Morrow T RoysterGermanyAsiya Javayant RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Kaitlin J SaylorsFrance2026-06-24Chemel, James L Cpa PROPOSAL5Bernardo Dominic
1001Stacey Q BologniaIndia2026-06-26Printing Dimensions PROPOSAL97Asiya Javayant
1002Francesco T DarakjyUnited Kingdom2026-06-17Rousseaux, Michael Esq UNQUALIFIED85Bernardo Dominic
1003Johnson N ShinkoAustralia2026-07-10King, Christopher A Esq RENEWAL60Ioni Bowcher
1004Izzy I MaletItaly2026-07-11Printing Dimensions UNQUALIFIED92Amy Elsner
1005Rodrigues A TollnerUnited Kingdom2026-06-16Buckley Miller Wright QUALIFIED43Asiya Javayant
1006Jeanfrancois R PerinUnited Kingdom2026-07-02Rousseaux, Michael Esq RENEWAL24Anna Fali
1007Stacey Z OstroskyGermany2026-06-25Buckley Miller Wright NEGOTIATION54Stephen Shaw
1008Aditya S BologniaRussia2026-06-25King, Christopher A Esq UNQUALIFIED20Stephen Shaw
1009Juan K MarrierItaly2026-06-13Benton, John B Jr UNQUALIFIED49Stephen Shaw
1010Alejandro I PoquetteSpain2026-06-25King, Christopher A Esq QUALIFIED92Xuxue Feng
1011Juan C MacleadCanada2026-07-06Buckley Miller Wright UNQUALIFIED82Bernardo Dominic
1012Aruna E VocelkaCanada2026-07-04King, Christopher A Esq PROPOSAL4Bernardo Dominic
1013Emily R GillianSpain2026-06-22Chanay, Jeffrey A Esq UNQUALIFIED0Ivan Magalhaes
1014Jefferson O TollnerSpain2026-06-27Printing Dimensions RENEWAL23Ioni Bowcher
1015Faith V MaletArgentina2026-06-27Rangoni Of Florence PROPOSAL71Bernardo Dominic
1016Costa C SlusarskiCanada2026-07-11Chemel, James L Cpa UNQUALIFIED13Anna Fali
1017Clifford T MaletArgentina2026-07-11Rousseaux, Michael Esq NEGOTIATION68Onyama Limba
1018Alejandro K SchemmerBrazil2026-07-03Chapman, Ross E Esq PROPOSAL15Asiya Javayant
1019Munro P TollnerRussia2026-06-30Rousseaux, Michael Esq NEW3Xuxue Feng
1020Greenwood B FigeroaUnited Kingdom2026-07-03Truhlar And Truhlar Attys UNQUALIFIED89Elwin Sharvill
1021Isabel G IturbideRussia2026-06-22Commercial Press QUALIFIED54Anna Fali
1022Morrow U KolmetzArgentina2026-07-04King, Christopher A Esq NEW14Bernardo Dominic
1023Ashley I RimFrance2026-06-27Rangoni Of Florence RENEWAL27Elwin Sharvill
1024Julie T OstroskyGermany2026-06-14Chanay, Jeffrey A Esq NEW10Anna Fali
1025Emily Z GauchoUnited Kingdom2026-06-23Commercial Press NEW95Xuxue Feng
1026Morrow W MaletSpain2026-07-02Buckley Miller Wright NEGOTIATION60Anna Fali
1027Isabel N BowleyAustralia2026-07-01Chemel, James L Cpa NEGOTIATION43Anna Fali
1028Faith S RutaRussia2026-06-27Commercial Press QUALIFIED36Amy Elsner
1029Costa V FerenczIndia2026-07-11Rousseaux, Michael Esq NEGOTIATION19Stephen Shaw
1030Izzy I SergiAustralia2026-06-30Benton, John B Jr RENEWAL46Anna Fali
1031Mayumi C MacleadSpain2026-07-06Benton, John B Jr RENEWAL84Ivan Magalhaes
1032Aruna R MorascaBrazil2026-06-20Truhlar And Truhlar Attys NEGOTIATION10Ioni Bowcher
1033Adams X MarrierCanada2026-07-05Benton, John B Jr NEGOTIATION20Amy Elsner
1034Izzy Y BowleyUnited Kingdom2026-06-24Feltz Printing Service QUALIFIED85Amy Elsner
1035Ricardo Z MorascaAustralia2026-06-24Rousseaux, Michael Esq UNQUALIFIED74Stephen Shaw
1036Nicolas F OstroskySpain2026-07-04Rousseaux, Michael Esq QUALIFIED25Bernardo Dominic
1037Darci R NestleJapan2026-06-15Dorl, James J Esq UNQUALIFIED69Stephen Shaw
1038Morrow P RulapaughJapan2026-07-06Chanay, Jeffrey A Esq UNQUALIFIED70Onyama Limba
1039Kaitlin S WieserAustralia2026-06-30Feiner Bros UNQUALIFIED76Amy Elsner
1040Juan F BriddickCanada2026-07-11Truhlar And Truhlar Attys NEW57Ioni Bowcher
1041Julie R GlickSpain2026-06-15Truhlar And Truhlar Attys RENEWAL48Asiya Javayant
1042Ashley W AlbaresCanada2026-07-10Benton, John B Jr PROPOSAL26Bernardo Dominic
1043Murillo R ShinkoJapan2026-07-02Chanay, Jeffrey A Esq QUALIFIED13Asiya Javayant
1044Izzy Q GillianIndia2026-06-22Truhlar And Truhlar Attys UNQUALIFIED40Ivan Magalhaes
1045Smith C BriddickAustralia2026-06-23Rousseaux, Michael Esq NEGOTIATION5Elwin Sharvill
1046David P DilliardRussia2026-06-26Chemel, James L Cpa PROPOSAL19Elwin Sharvill
1047Izzy J ChuiFrance2026-07-05Rousseaux, Michael Esq UNQUALIFIED7Onyama Limba
1048Deepesh D CampainFrance2026-06-26Printing Dimensions NEW52Amy Elsner
1049Faith H NestleAustralia2026-07-12Morlong Associates NEGOTIATION0Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Claire N InouyeSpainOnyama Limba NEGOTIATION
Munro O BologniaIndiaIvan Magalhaes QUALIFIED
Antonio J SchemmerItalyIvan Magalhaes NEW
Mujtaba F FigeroaFranceBernardo Dominic RENEWAL
Leon W SergiAustraliaBernardo Dominic NEGOTIATION
Julie W FollerAustraliaOnyama Limba QUALIFIED
Ricardo Y BologniaAustraliaStephen Shaw UNQUALIFIED
Ashley B MacleadGermanyElwin Sharvill NEW
Maria G KolmetzFranceAsiya Javayant PROPOSAL
Arvin K CampainFranceAsiya Javayant RENEWAL
Chavez I WieserBrazilAmy Elsner PROPOSAL
Tony R DilliardRussiaElwin Sharvill RENEWAL
Darci I DilliardGermanyOnyama Limba RENEWAL
Claire S MorascaCanadaIvan Magalhaes NEW
Ivar T RoysterFranceXuxue Feng PROPOSAL
Munro P CaudyRussiaAsiya Javayant NEGOTIATION
Aruna D DarakjyCanadaXuxue Feng PROPOSAL
Jennifer K FollerAustraliaAnna Fali NEGOTIATION
Maria I MarrierRussiaStephen Shaw QUALIFIED
Ricardo G InouyeAustraliaIoni Bowcher RENEWAL
Aika T ButtGermanyOnyama Limba UNQUALIFIED
Antonio M SchemmerGermanyElwin Sharvill NEW
Sinclair K InouyeItalyBernardo Dominic NEW
Jones F ButtIndiaBernardo Dominic PROPOSAL
Salvatore X ChuiAustraliaIoni Bowcher NEGOTIATION
Deepesh L WhobreyCanadaAsiya Javayant RENEWAL
Morrow A CaudyItalyAnna Fali NEW
Francesco O ChuiItalyXuxue Feng NEGOTIATION
Izzy Q SchemmerUnited KingdomXuxue Feng NEW
Sinclair P CampainUnited KingdomOnyama Limba RENEWAL
Maisha V ShinkoCanadaOnyama Limba RENEWAL
Leon Q WhobreyGermanyOnyama Limba QUALIFIED
Morrow C OstroskyItalyAsiya Javayant PROPOSAL
Ivar J BriddickArgentinaStephen Shaw QUALIFIED
Silvio I VocelkaArgentinaIoni Bowcher QUALIFIED
Claire Q BologniaIndiaAnna Fali UNQUALIFIED
Aika F AmigonUnited KingdomOnyama Limba NEW
Octavia R DarakjyArgentinaElwin Sharvill RENEWAL
Adams K ShinkoFranceAmy Elsner UNQUALIFIED
Jennifer K CaudyUnited KingdomIoni Bowcher UNQUALIFIED
Aditya Y BowleyJapanIvan Magalhaes NEGOTIATION
Antonio I MorascaArgentinaAmy Elsner QUALIFIED
Emily K VocelkaJapanOnyama Limba RENEWAL
Arvin B ButtArgentinaAsiya Javayant NEW
Ashley U MaletCanadaOnyama Limba RENEWAL
Tony T VocelkaArgentinaIvan Magalhaes PROPOSAL
Sinclair Q SlusarskiSpainElwin Sharvill QUALIFIED
Rodrigues E SaylorsArgentinaOnyama Limba NEGOTIATION
Cody Y StockhamAustraliaIoni Bowcher PROPOSAL
Antonio F BologniaItalyAnna Fali PROPOSAL
Frozen Columns
Name
Salvatore J Kolmetz
Cody G Inouye
Kaitlin B Ostrosky
Leja T Whobrey
James V Butt
Deepesh M Poquette
Darci B Sergi
James J Bolognia
Cody V Oldroyd
Sinclair A Garufi
Ivar D Shinko
Nicolas H Garufi
James O Bowley
Rodrigues D Bolognia
Nicolas H Butt
Claire E Marrier
Emily F Shinko
Rodrigues N Kolmetz
Maria M Perin
Ricardo C Foller
Stacey S Caldarera
Costa M Nicka
Aruna Z Inouye
Ricardo R Darakjy
Rodrigues V Doe
Kadeem B Ostrosky
Leon I Ruta
Isabel I Chui
David Y Bowley
Jeanfrancois E Poquette
Izzy S Ferencz
Tony I Wieser
Munro U Rim
Isabel J Wieser
Ashley P Paprocki
Francesco K Perin
Juan X Chui
Kadeem B Kusko
Ivar U Kusko
David N Rulapaugh
Leja C Nestle
Aruna K Caudy
Maisha C Caldarera
Maisha R Oldroyd
James U Wieser
Claire K Sergi
Wickens Q Kolmetz
Smith P Albares
Aika H Shinko
Sinclair Y Wieser
IdCountryDate
1000Australia2026-07-05
1001Germany2026-07-10
1002Brazil2026-07-12
1003France2026-06-13
1004United Kingdom2026-06-25
1005United Kingdom2026-07-10
1006Australia2026-06-30
1007India2026-06-26
1008United Kingdom2026-06-17
1009Brazil2026-07-11
1010Brazil2026-07-06
1011Germany2026-07-08
1012Argentina2026-06-27
1013Spain2026-07-03
1014France2026-06-29
1015Canada2026-06-14
1016Italy2026-07-08
1017Brazil2026-06-16
1018Japan2026-07-11
1019Canada2026-06-29
1020Germany2026-06-20
1021Germany2026-07-10
1022Russia2026-06-25
1023Germany2026-07-05
1024Canada2026-06-29
1025Australia2026-06-19
1026Brazil2026-07-08
1027France2026-06-15
1028Germany2026-07-01
1029France2026-06-19
1030Argentina2026-06-28
1031Brazil2026-06-13
1032Brazil2026-06-21
1033Australia2026-06-27
1034Japan2026-06-22
1035Italy2026-06-27
1036Japan2026-06-13
1037France2026-07-10
1038India2026-06-21
1039Argentina2026-06-20
1040Brazil2026-06-14
1041Canada2026-06-21
1042Russia2026-07-02
1043Japan2026-07-02
1044Italy2026-06-24
1045India2026-07-01
1046Germany2026-06-18
1047India2026-07-04
1048Italy2026-06-27
1049United Kingdom2026-07-07

On-Demand Data

NameIdCountryDate
Francesco I Ostrosky1000Italy2026-06-26
Adams F Kusko1001Brazil2026-07-09
Deepesh R Gaucho1002India2026-06-30
Deepesh J Darakjy1003Russia2026-06-20
Juan U Figeroa1004Italy2026-06-14
Johnson E Nicka1005Russia2026-06-15
Izzy B Butt1006Australia2026-06-23
Kaitlin E Waycott1007Australia2026-07-03
Izzy D Malet1008Spain2026-06-14
Ashley M Schemmer1009France2026-07-04
Mujtaba B Rim1010Spain2026-06-15
Tony P Chui1011Italy2026-06-22
Izzy C Foller1012Italy2026-07-02
Stacey E Nestle1013Japan2026-07-11
Darci E Ruta1014India2026-06-17
Costa R Kolmetz1015Russia2026-06-17
Aika O Shinko1016Russia2026-06-27
Nicolas Q Oldroyd1017Russia2026-06-26
Misaki I Ruta1018France2026-07-03
Faith E Flosi1019France2026-07-03
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aditya N MaletArgentinaIvan Magalhaes NEGOTIATION
Leon S GillianUnited KingdomBernardo Dominic UNQUALIFIED
Maria A CampainRussiaIoni Bowcher NEGOTIATION
Arvin Z CaldareraSpainAnna Fali QUALIFIED
Darci A MacleadItalyBernardo Dominic PROPOSAL
Cody Y OstroskyAustraliaElwin Sharvill PROPOSAL
Jennifer B StensethGermanyAnna Fali NEW
Aika J SergiSpainXuxue Feng PROPOSAL
Murillo Z MorascaGermanyBernardo Dominic QUALIFIED
Ashley P WieserIndiaXuxue Feng PROPOSAL
Aditya J DarakjyCanadaIoni Bowcher PROPOSAL
Aruna O AlbaresAustraliaAmy Elsner NEW
Arvin A WhobreyUnited KingdomStephen Shaw PROPOSAL
Misaki W AlbaresSpainBernardo Dominic UNQUALIFIED
Sinclair O SchemmerGermanyIoni Bowcher UNQUALIFIED
Claire Q GauchoRussiaOnyama Limba RENEWAL
Morrow J RutaItalyAmy Elsner QUALIFIED
Jennifer Q ShinkoAustraliaElwin Sharvill NEW
Julie R AmigonArgentinaStephen Shaw NEGOTIATION
Alejandro X SergiAustraliaXuxue Feng RENEWAL
Claire I GillianArgentinaAmy Elsner NEW
Arvin C WhobreyAustraliaAmy Elsner NEGOTIATION
Leja N OldroydRussiaOnyama Limba QUALIFIED
Ashley Y RoysterUnited KingdomIvan Magalhaes NEGOTIATION
Mujtaba B TollnerRussiaAnna Fali UNQUALIFIED
Darci A CaudySpainAmy Elsner QUALIFIED
Mujtaba X MorascaRussiaStephen Shaw QUALIFIED
Jeanfrancois K WieserUnited KingdomAsiya Javayant QUALIFIED
Nicolas G BologniaFranceBernardo Dominic NEW
Murillo F DilliardCanadaStephen Shaw UNQUALIFIED
Jeanfrancois F BologniaGermanyXuxue Feng QUALIFIED
Claire O MaletSpainAsiya Javayant UNQUALIFIED
Jennifer X CampainFranceAmy Elsner RENEWAL
Morrow J FollerFranceElwin Sharvill PROPOSAL
Jeanfrancois E FlosiRussiaIoni Bowcher PROPOSAL
Chavez K WieserItalyXuxue Feng RENEWAL
Maria Q VenereBrazilBernardo Dominic PROPOSAL
Aditya P PoquetteSpainElwin Sharvill RENEWAL
Cody N AlbaresItalyIoni Bowcher PROPOSAL
Salvatore E ButtArgentinaXuxue Feng 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>