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
Tony D FigeroaArgentinaAmy Elsner QUALIFIED
Octavia W IturbideFranceBernardo Dominic NEGOTIATION
Isabel K IturbideRussiaStephen Shaw RENEWAL
Aika H PerinRussiaOnyama Limba PROPOSAL
Greenwood N StockhamAustraliaOnyama Limba PROPOSAL
Juan J FerenczGermanyAnna Fali QUALIFIED
Maisha D MaletSpainIvan Magalhaes PROPOSAL
Faith Z SlusarskiJapanIvan Magalhaes UNQUALIFIED
Alejandro K StockhamBrazilAsiya Javayant UNQUALIFIED
Maisha B RoysterItalyAnna Fali PROPOSAL
Costa O ChuiSpainXuxue Feng UNQUALIFIED
Kaitlin R ButtSpainOnyama Limba RENEWAL
Juan W SaylorsJapanBernardo Dominic RENEWAL
Sinclair X WaycottAustraliaAmy Elsner NEW
Cody O GlickRussiaIvan Magalhaes QUALIFIED
Nicolas E PaprockiRussiaAsiya Javayant RENEWAL
Adams U MorascaCanadaStephen Shaw PROPOSAL
Darci I BologniaItalyAnna Fali UNQUALIFIED
Nicolas M DarakjyCanadaElwin Sharvill UNQUALIFIED
Mujtaba A NestleArgentinaIvan Magalhaes NEGOTIATION
Jones N VocelkaJapanAnna Fali PROPOSAL
Juan A PerinJapanAnna Fali QUALIFIED
Jeanfrancois C RoysterCanadaOnyama Limba RENEWAL
Julie Q SaylorsAustraliaAmy Elsner PROPOSAL
Jeanfrancois E PoquetteFranceOnyama Limba NEW
Ivar D MaletRussiaBernardo Dominic QUALIFIED
Chavez F AlbaresJapanIoni Bowcher UNQUALIFIED
Francesco N FlosiItalyXuxue Feng RENEWAL
Leja I FigeroaJapanStephen Shaw UNQUALIFIED
Morrow X MacleadGermanyOnyama Limba UNQUALIFIED
Misaki L GarufiCanadaStephen Shaw PROPOSAL
Sinclair W SchemmerGermanyAnna Fali UNQUALIFIED
Costa F RimUnited KingdomAmy Elsner UNQUALIFIED
Jefferson N OstroskyGermanyIoni Bowcher PROPOSAL
Johnson T InouyeFranceAnna Fali UNQUALIFIED
Kadeem Y DoeRussiaAmy Elsner NEGOTIATION
Silvio S WaycottBrazilXuxue Feng RENEWAL
Costa C VenereIndiaAsiya Javayant QUALIFIED
Johnson L RoysterItalyBernardo Dominic QUALIFIED
Leon O MorascaRussiaStephen Shaw RENEWAL
Smith A CampainAustraliaXuxue Feng PROPOSAL
Francesco Y FlosiAustraliaAnna Fali QUALIFIED
Mayumi M KolmetzAustraliaAnna Fali PROPOSAL
Jefferson P GlickArgentinaIvan Magalhaes RENEWAL
Ivar Y MaletAustraliaAsiya Javayant NEGOTIATION
Misaki C ChuiUnited KingdomAsiya Javayant NEW
Francesco H DoeItalyAsiya Javayant PROPOSAL
Maria K PerinAustraliaAsiya Javayant QUALIFIED
Alejandro U IturbideBrazilIoni Bowcher UNQUALIFIED
Johnson J FerenczUnited KingdomBernardo Dominic NEW
Horizontal
NameCountryRepresentativeStatus
Morrow M GillianAustraliaXuxue Feng NEGOTIATION
Izzy J VocelkaRussiaIoni Bowcher PROPOSAL
Octavia A MorascaFranceStephen Shaw NEGOTIATION
Aditya K OstroskySpainOnyama Limba NEW
Jeanfrancois T WieserBrazilAmy Elsner RENEWAL
Jones N PerinArgentinaXuxue Feng UNQUALIFIED
Costa U MaletRussiaIvan Magalhaes NEGOTIATION
Morrow B SergiCanadaAnna Fali QUALIFIED
Octavia P AmigonBrazilElwin Sharvill NEW
Claire B BologniaItalyIoni Bowcher RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Antonio Q ShinkoFrance2024-05-30Rousseaux, Michael Esq PROPOSAL18Stephen Shaw
1001Ricardo Y ButtUnited Kingdom2024-06-15Buckley Miller Wright RENEWAL51Elwin Sharvill
1002Wickens R SergiItaly2024-06-18Chemel, James L Cpa RENEWAL83Ivan Magalhaes
1003Salvatore Z IturbideArgentina2024-06-05Rousseaux, Michael Esq UNQUALIFIED45Stephen Shaw
1004Adams M ChuiJapan2024-06-08Chanay, Jeffrey A Esq QUALIFIED76Ioni Bowcher
1005Izzy A BologniaIndia2024-06-17Chemel, James L Cpa NEGOTIATION48Bernardo Dominic
1006Sinclair Q RoysterGermany2024-06-09Dorl, James J Esq NEGOTIATION85Onyama Limba
1007Julie Q FigeroaJapan2024-06-05Chanay, Jeffrey A Esq NEGOTIATION77Bernardo Dominic
1008David Q OldroydGermany2024-06-22Benton, John B Jr UNQUALIFIED68Elwin Sharvill
1009Chavez E MaletSpain2024-06-14Printing Dimensions NEW32Asiya Javayant
1010Mayumi L AmigonFrance2024-06-03Morlong Associates QUALIFIED21Onyama Limba
1011Octavia L GarufiIndia2024-05-24Truhlar And Truhlar Attys NEGOTIATION3Xuxue Feng
1012Sinclair G CaldareraSpain2024-06-11Chemel, James L Cpa NEGOTIATION33Xuxue Feng
1013Kaitlin O MaletGermany2024-06-10King, Christopher A Esq NEGOTIATION18Anna Fali
1014Emily D StockhamBrazil2024-06-10Dorl, James J Esq QUALIFIED78Onyama Limba
1015Claire M SaylorsRussia2024-06-16Feiner Bros NEGOTIATION96Onyama Limba
1016James Z DoeBrazil2024-05-31Truhlar And Truhlar Attys NEGOTIATION32Bernardo Dominic
1017Octavia E MarrierFrance2024-05-30Buckley Miller Wright PROPOSAL42Ioni Bowcher
1018Munro C KolmetzRussia2024-06-03Buckley Miller Wright PROPOSAL66Asiya Javayant
1019Izzy O FollerJapan2024-06-13Truhlar And Truhlar Attys NEGOTIATION91Stephen Shaw
1020Silvio J SchemmerCanada2024-06-14King, Christopher A Esq NEGOTIATION45Bernardo Dominic
1021Kaitlin F NickaJapan2024-05-25Buckley Miller Wright NEW11Elwin Sharvill
1022Maria H NickaUnited Kingdom2024-06-04Morlong Associates RENEWAL81Ivan Magalhaes
1023Arvin H CaldareraRussia2024-06-06Chapman, Ross E Esq NEGOTIATION59Xuxue Feng
1024Jefferson K InouyeJapan2024-06-17Truhlar And Truhlar Attys NEW87Onyama Limba
1025Maisha G RoysterBrazil2024-05-28Rangoni Of Florence NEGOTIATION29Elwin Sharvill
1026Leja W BowleyJapan2024-06-16Chapman, Ross E Esq RENEWAL20Elwin Sharvill
1027Arvin B WhobreyArgentina2024-05-29Dorl, James J Esq RENEWAL4Xuxue Feng
1028Emily R CampainBrazil2024-06-22Dorl, James J Esq PROPOSAL78Elwin Sharvill
1029Darci O KolmetzJapan2024-05-26Truhlar And Truhlar Attys NEGOTIATION23Onyama Limba
1030Leja Y FollerBrazil2024-06-02Commercial Press PROPOSAL40Ioni Bowcher
1031Ashley N MaletSpain2024-06-02Chanay, Jeffrey A Esq QUALIFIED29Ivan Magalhaes
1032Chavez U FollerSpain2024-05-26Benton, John B Jr NEW46Anna Fali
1033Silvio N BriddickIndia2024-06-02Commercial Press QUALIFIED5Onyama Limba
1034Murillo Z GlickIndia2024-05-25Rangoni Of Florence NEGOTIATION25Ioni Bowcher
1035Wickens P WieserItaly2024-06-08Chemel, James L Cpa NEGOTIATION13Onyama Limba
1036Sinclair K ShinkoUnited Kingdom2024-05-25Chemel, James L Cpa QUALIFIED59Asiya Javayant
1037Greenwood W GlickBrazil2024-06-05Buckley Miller Wright NEGOTIATION50Stephen Shaw
1038Cody L SchemmerAustralia2024-06-17Morlong Associates QUALIFIED56Ivan Magalhaes
1039Leon L CaldareraAustralia2024-05-27Rousseaux, Michael Esq QUALIFIED12Ivan Magalhaes
1040Leon W MaletIndia2024-06-05Rousseaux, Michael Esq QUALIFIED86Anna Fali
1041Chavez K DarakjyItaly2024-06-17King, Christopher A Esq QUALIFIED9Onyama Limba
1042Emily S MorascaJapan2024-06-07Feiner Bros PROPOSAL84Amy Elsner
1043Clifford D SlusarskiItaly2024-05-25Rousseaux, Michael Esq QUALIFIED56Anna Fali
1044Aika A MarrierCanada2024-06-13Benton, John B Jr QUALIFIED98Stephen Shaw
1045Julie G NestleItaly2024-05-26Truhlar And Truhlar Attys NEGOTIATION62Bernardo Dominic
1046Julie D GillianArgentina2024-06-06Rousseaux, Michael Esq NEGOTIATION20Elwin Sharvill
1047Alejandro J CaudyIndia2024-06-07Truhlar And Truhlar Attys RENEWAL9Elwin Sharvill
1048Juan S GillianCanada2024-06-19Rousseaux, Michael Esq NEGOTIATION56Asiya Javayant
1049Mujtaba C IturbideItaly2024-06-05King, Christopher A Esq PROPOSAL67Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
James W ButtGermanyAsiya Javayant QUALIFIED
Alejandro G SchemmerJapanAnna Fali PROPOSAL
Isabel G PoquetteCanadaXuxue Feng UNQUALIFIED
Izzy Y VocelkaAustraliaIvan Magalhaes NEGOTIATION
Chavez U SchemmerUnited KingdomAsiya Javayant NEW
Stacey F BologniaGermanyXuxue Feng PROPOSAL
Octavia B SergiBrazilOnyama Limba UNQUALIFIED
Wickens U RutaIndiaOnyama Limba QUALIFIED
Darci I StensethIndiaBernardo Dominic RENEWAL
Clifford L RutaGermanyAnna Fali RENEWAL
Clifford W CaudyRussiaIoni Bowcher QUALIFIED
Izzy X RoysterItalyIvan Magalhaes RENEWAL
Ivar C NickaItalyAmy Elsner QUALIFIED
Maria T VenereRussiaBernardo Dominic NEGOTIATION
Stacey Y DoeCanadaIoni Bowcher QUALIFIED
Smith E DoeUnited KingdomStephen Shaw UNQUALIFIED
Clifford J PerinArgentinaStephen Shaw NEGOTIATION
Nicolas W IturbideRussiaAsiya Javayant NEGOTIATION
Salvatore B IturbideItalyIvan Magalhaes NEGOTIATION
Johnson L InouyeIndiaBernardo Dominic NEGOTIATION
Rodrigues Y VenereGermanyXuxue Feng NEGOTIATION
Antonio P NickaBrazilStephen Shaw NEW
James S DarakjyAustraliaXuxue Feng NEW
Maisha P BowleyItalyIvan Magalhaes PROPOSAL
Morrow F OstroskyItalyElwin Sharvill UNQUALIFIED
Adams K WieserJapanElwin Sharvill QUALIFIED
Darci L MaletFranceElwin Sharvill RENEWAL
Smith P AmigonItalyAsiya Javayant QUALIFIED
Clifford P FigeroaArgentinaIoni Bowcher QUALIFIED
Jeanfrancois E PerinSpainAsiya Javayant RENEWAL
Wickens N NestleJapanIvan Magalhaes NEW
Clifford Z GillianCanadaIoni Bowcher QUALIFIED
Chavez V WieserCanadaElwin Sharvill QUALIFIED
Francesco C MaletFranceAsiya Javayant NEW
Octavia C MacleadSpainAmy Elsner PROPOSAL
Deepesh P MaletAustraliaAsiya Javayant PROPOSAL
Maria L BologniaUnited KingdomBernardo Dominic RENEWAL
Sinclair C StockhamCanadaElwin Sharvill RENEWAL
Jennifer G GillianSpainAsiya Javayant UNQUALIFIED
Sinclair T CaldareraJapanIoni Bowcher RENEWAL
Isabel Q CaldareraAustraliaElwin Sharvill RENEWAL
Sinclair A SchemmerArgentinaOnyama Limba PROPOSAL
Aika I FigeroaGermanyAmy Elsner UNQUALIFIED
Wickens S MarrierGermanyOnyama Limba QUALIFIED
Smith N InouyeArgentinaElwin Sharvill RENEWAL
Salvatore R StockhamSpainBernardo Dominic RENEWAL
Murillo U TollnerItalyStephen Shaw UNQUALIFIED
Isabel V PaprockiItalyIvan Magalhaes QUALIFIED
Salvatore G FollerCanadaAmy Elsner NEGOTIATION
Emily T DoeArgentinaIvan Magalhaes NEW
Frozen Columns
Name
Julie P Oldroyd
Sinclair Y Rim
Wickens I Amigon
Mayumi V Nicka
Isabel C Ferencz
Leja W Sergi
Emily B Kusko
Rodrigues L Iturbide
Salvatore H Shinko
Darci I Butt
Jennifer F Doe
Adams D Butt
Deepesh F Doe
Ashley K Doe
Ivar D Caudy
Kadeem G Iturbide
Aruna Z Bolognia
Rodrigues U Wieser
Jones A Garufi
Jeanfrancois D Maclead
Ashley N Rulapaugh
Adams L Bolognia
Alejandro N Kolmetz
Aruna N Flosi
Octavia B Nestle
Maria W Glick
Rodrigues G Chui
Juan J Malet
Deepesh V Stenseth
Adams O Marrier
Isabel P Gillian
Wickens U Stenseth
Tony T Perin
Kaitlin P Shinko
Wickens B Ostrosky
Alejandro M Oldroyd
Deepesh C Briddick
Faith B Flosi
Greenwood N Dilliard
Jeanfrancois W Figeroa
Juan J Kusko
Maria I Glick
James J Kusko
Misaki T Darakjy
Deepesh X Doe
Mujtaba F Stenseth
Nicolas C Kolmetz
Claire M Ferencz
Maisha R Butt
Stacey J Amigon
IdCountryDate
1000Argentina2024-06-01
1001Italy2024-06-22
1002France2024-06-06
1003India2024-06-02
1004Russia2024-05-30
1005United Kingdom2024-06-22
1006Italy2024-05-26
1007Germany2024-06-04
1008Russia2024-05-31
1009Argentina2024-06-12
1010Spain2024-06-02
1011Argentina2024-06-13
1012India2024-05-26
1013Japan2024-06-05
1014Germany2024-06-07
1015Australia2024-05-25
1016United Kingdom2024-05-30
1017Italy2024-05-27
1018Germany2024-06-18
1019Canada2024-06-12
1020Russia2024-05-30
1021Italy2024-06-06
1022India2024-06-14
1023Italy2024-06-20
1024Brazil2024-06-03
1025Argentina2024-06-10
1026Australia2024-06-06
1027Japan2024-05-31
1028Brazil2024-06-20
1029Germany2024-06-14
1030Russia2024-06-03
1031India2024-06-21
1032India2024-06-14
1033France2024-05-27
1034Brazil2024-06-07
1035United Kingdom2024-06-17
1036Brazil2024-06-07
1037France2024-06-07
1038Australia2024-06-12
1039France2024-06-13
1040Spain2024-05-24
1041Japan2024-06-22
1042Russia2024-06-09
1043Canada2024-06-14
1044Russia2024-06-01
1045Canada2024-06-01
1046Japan2024-06-06
1047Russia2024-06-02
1048India2024-06-11
1049Italy2024-06-02

On-Demand Data

NameIdCountryDate
Rodrigues X Stenseth1000Russia2024-05-25
Jefferson D Glick1001Japan2024-06-01
Claire O Paprocki1002Russia2024-06-04
Jennifer V Schemmer1003Australia2024-06-09
Munro T Ruta1004India2024-05-26
Juan G Nestle1005Argentina2024-05-27
Ivar E Malet1006Spain2024-06-18
Misaki B Malet1007United Kingdom2024-06-18
Adams F Ostrosky1008Australia2024-06-18
Ricardo B Rim1009United Kingdom2024-06-20
Clifford N Malet1010France2024-05-29
Kaitlin F Garufi1011India2024-06-06
Mujtaba P Darakjy1012Spain2024-06-06
Ashley G Glick1013Japan2024-06-20
Costa Q Whobrey1014Australia2024-06-03
James K Shinko1015Italy2024-05-27
Mujtaba Y Stockham1016France2024-06-21
Costa T Kolmetz1017Japan2024-06-13
Murillo P Inouye1018Germany2024-06-13
Cody E Vocelka1019United Kingdom2024-05-29
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Faith Y GillianCanadaAmy Elsner NEW
Misaki Q StockhamItalyAsiya Javayant UNQUALIFIED
Leja U BriddickFranceAsiya Javayant NEW
Octavia O VenereRussiaIoni Bowcher RENEWAL
Stacey O FlosiAustraliaIvan Magalhaes QUALIFIED
Ashley Z MacleadSpainIoni Bowcher QUALIFIED
Clifford X DilliardBrazilElwin Sharvill PROPOSAL
Julie W StensethUnited KingdomAmy Elsner RENEWAL
Juan C FlosiArgentinaStephen Shaw RENEWAL
Munro G FollerGermanyAnna Fali NEGOTIATION
Aruna D KolmetzArgentinaIvan Magalhaes UNQUALIFIED
Ashley W NestleBrazilXuxue Feng NEW
Isabel Q KolmetzUnited KingdomStephen Shaw UNQUALIFIED
Salvatore N StensethBrazilOnyama Limba NEW
Kadeem X WhobreyItalyBernardo Dominic PROPOSAL
Isabel G CaldareraRussiaBernardo Dominic UNQUALIFIED
Clifford S SaylorsGermanyAsiya Javayant UNQUALIFIED
Darci I IturbideItalyAnna Fali UNQUALIFIED
Claire Q NickaArgentinaStephen Shaw NEGOTIATION
Salvatore H KolmetzGermanyStephen Shaw PROPOSAL
David M DarakjyItalyIvan Magalhaes UNQUALIFIED
Julie F ChuiItalyAnna Fali PROPOSAL
Jones J SaylorsSpainAnna Fali NEGOTIATION
Leja I FlosiJapanAnna Fali RENEWAL
Jefferson Y MarrierFranceBernardo Dominic NEGOTIATION
Ivar S OldroydAustraliaIoni Bowcher PROPOSAL
Mujtaba G CampainFranceAmy Elsner NEGOTIATION
Jones Q GauchoIndiaXuxue Feng UNQUALIFIED
Silvio N PaprockiUnited KingdomIvan Magalhaes RENEWAL
Morrow R AlbaresJapanIvan Magalhaes PROPOSAL
Nicolas T OldroydItalyIoni Bowcher RENEWAL
Misaki Q RulapaughBrazilOnyama Limba NEGOTIATION
Leon R NickaIndiaAnna Fali PROPOSAL
Jeanfrancois M RoysterCanadaOnyama Limba PROPOSAL
Julie J GlickJapanAmy Elsner RENEWAL
Mujtaba H FigeroaIndiaIvan Magalhaes NEGOTIATION
Chavez W VocelkaAustraliaAsiya Javayant NEW
Rodrigues V WieserIndiaIvan Magalhaes NEGOTIATION
Murillo H FollerCanadaIoni Bowcher NEW
Morrow Z RulapaughCanadaBernardo Dominic NEW

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