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
Leja X ChuiItalyAnna Fali NEGOTIATION
Johnson Z RutaCanadaAnna Fali QUALIFIED
Munro F BologniaItalyIvan Magalhaes NEGOTIATION
Aditya B CampainGermanyAnna Fali NEGOTIATION
Ashley G GauchoArgentinaBernardo Dominic PROPOSAL
Darci J BologniaGermanyBernardo Dominic NEW
Aika Q RutaBrazilElwin Sharvill QUALIFIED
Ivar E VocelkaAustraliaIoni Bowcher PROPOSAL
Julie X GillianArgentinaAmy Elsner PROPOSAL
Isabel H AlbaresArgentinaStephen Shaw QUALIFIED
Silvio Y BologniaAustraliaElwin Sharvill QUALIFIED
Isabel K GauchoSpainXuxue Feng NEW
Mujtaba S MaletArgentinaAsiya Javayant RENEWAL
Sinclair G OldroydItalyBernardo Dominic QUALIFIED
Ivar O StockhamArgentinaOnyama Limba PROPOSAL
Leja U MarrierArgentinaAsiya Javayant NEGOTIATION
Isabel T OldroydCanadaIvan Magalhaes UNQUALIFIED
Silvio F VenereSpainIvan Magalhaes PROPOSAL
Mujtaba T AlbaresSpainAsiya Javayant NEGOTIATION
Jones G MacleadSpainElwin Sharvill QUALIFIED
Leja L WieserCanadaAsiya Javayant UNQUALIFIED
Johnson X MacleadGermanyElwin Sharvill QUALIFIED
Morrow V ButtGermanyAsiya Javayant QUALIFIED
Kadeem M PoquetteCanadaBernardo Dominic PROPOSAL
Ricardo G GlickUnited KingdomOnyama Limba UNQUALIFIED
Aruna O SergiRussiaStephen Shaw NEW
Chavez Q GlickGermanyElwin Sharvill NEW
James M TollnerArgentinaXuxue Feng NEGOTIATION
Murillo H RulapaughAustraliaBernardo Dominic NEW
Tony Z SchemmerAustraliaStephen Shaw QUALIFIED
Cody B NestleRussiaStephen Shaw QUALIFIED
Jennifer B FigeroaAustraliaAsiya Javayant NEGOTIATION
James A CaldareraGermanyStephen Shaw PROPOSAL
Francesco D MaletBrazilAmy Elsner NEGOTIATION
Munro P CaudyJapanXuxue Feng QUALIFIED
Cody Z VocelkaUnited KingdomIvan Magalhaes RENEWAL
Stacey B AlbaresCanadaXuxue Feng QUALIFIED
Maria Z RulapaughUnited KingdomIvan Magalhaes UNQUALIFIED
Jones E BologniaIndiaElwin Sharvill NEW
Adams Z IturbideJapanIoni Bowcher NEGOTIATION
Adams M BriddickAustraliaIvan Magalhaes NEW
Leja R StockhamIndiaIoni Bowcher RENEWAL
Darci L MaletUnited KingdomIvan Magalhaes PROPOSAL
Maisha S DarakjyUnited KingdomElwin Sharvill NEGOTIATION
Faith B MarrierGermanyAsiya Javayant UNQUALIFIED
Jennifer C MaletItalyIvan Magalhaes NEW
Faith T CampainJapanElwin Sharvill PROPOSAL
Aika K DoeUnited KingdomOnyama Limba PROPOSAL
Sinclair D FigeroaArgentinaAnna Fali PROPOSAL
Francesco D FigeroaFranceOnyama Limba NEW
Horizontal
NameCountryRepresentativeStatus
Faith F KuskoCanadaXuxue Feng UNQUALIFIED
Izzy Z DoeJapanElwin Sharvill QUALIFIED
Octavia Z IturbideItalyStephen Shaw NEW
Mujtaba O PaprockiJapanElwin Sharvill QUALIFIED
Sinclair D PerinRussiaXuxue Feng QUALIFIED
Izzy L WaycottGermanyAnna Fali NEW
Darci O CaldareraUnited KingdomStephen Shaw RENEWAL
Nicolas Y MaletJapanIvan Magalhaes PROPOSAL
Stacey Z CaldareraArgentinaIvan Magalhaes NEGOTIATION
Murillo R FollerRussiaAmy Elsner UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000James B TollnerSpain2024-06-18Benton, John B Jr NEGOTIATION62Elwin Sharvill
1001Maria Y OldroydBrazil2024-06-19Chemel, James L Cpa RENEWAL6Ivan Magalhaes
1002Emily G PerinJapan2024-06-11Benton, John B Jr PROPOSAL22Onyama Limba
1003Octavia S StockhamFrance2024-05-24Morlong Associates QUALIFIED10Ivan Magalhaes
1004Kaitlin J WhobreyJapan2024-05-25King, Christopher A Esq PROPOSAL41Ivan Magalhaes
1005Izzy G VenereFrance2024-06-18Chemel, James L Cpa UNQUALIFIED33Amy Elsner
1006Aditya L MaletJapan2024-06-13Rousseaux, Michael Esq NEW63Ivan Magalhaes
1007Wickens Z FlosiJapan2024-06-02Truhlar And Truhlar Attys RENEWAL86Stephen Shaw
1008Jeanfrancois O MarrierUnited Kingdom2024-06-12Feiner Bros PROPOSAL33Amy Elsner
1009Nicolas C RutaJapan2024-05-27Chapman, Ross E Esq NEGOTIATION30Stephen Shaw
1010Claire I VenereFrance2024-06-13Benton, John B Jr PROPOSAL2Anna Fali
1011David A AlbaresUnited Kingdom2024-05-23Commercial Press NEW85Ivan Magalhaes
1012Jennifer B FlosiIndia2024-05-23Buckley Miller Wright UNQUALIFIED89Stephen Shaw
1013Emily I MaletUnited Kingdom2024-06-10Chanay, Jeffrey A Esq PROPOSAL90Stephen Shaw
1014Greenwood U VocelkaBrazil2024-06-16Commercial Press NEGOTIATION78Onyama Limba
1015David E CaldareraAustralia2024-06-03Commercial Press NEGOTIATION84Amy Elsner
1016Chavez C BowleyBrazil2024-06-01Morlong Associates NEGOTIATION18Stephen Shaw
1017Alejandro O BriddickIndia2024-05-24Feiner Bros QUALIFIED68Amy Elsner
1018Deepesh C FollerFrance2024-06-03Truhlar And Truhlar Attys QUALIFIED87Xuxue Feng
1019Jeanfrancois H PerinAustralia2024-06-20Commercial Press QUALIFIED12Stephen Shaw
1020Costa F RoysterAustralia2024-05-28Rousseaux, Michael Esq NEGOTIATION14Anna Fali
1021Sinclair M CaldareraSpain2024-06-21Chapman, Ross E Esq QUALIFIED33Bernardo Dominic
1022Octavia V MacleadGermany2024-06-11Chapman, Ross E Esq NEGOTIATION14Anna Fali
1023Cody P VenereItaly2024-06-14Commercial Press PROPOSAL0Ioni Bowcher
1024Alejandro C VocelkaRussia2024-05-29Dorl, James J Esq NEGOTIATION45Stephen Shaw
1025Tony K MarrierCanada2024-06-06Feiner Bros NEW80Bernardo Dominic
1026Francesco X FerenczCanada2024-06-09Chanay, Jeffrey A Esq NEW65Ioni Bowcher
1027Greenwood F SaylorsItaly2024-05-23Feiner Bros NEGOTIATION7Asiya Javayant
1028Octavia R MaletCanada2024-06-08Benton, John B Jr RENEWAL29Amy Elsner
1029Leon F SergiAustralia2024-05-31Truhlar And Truhlar Attys NEW51Elwin Sharvill
1030Aruna I InouyeGermany2024-06-16Rangoni Of Florence PROPOSAL33Xuxue Feng
1031Deepesh P PoquetteItaly2024-06-02Rangoni Of Florence PROPOSAL19Stephen Shaw
1032Aruna S WaycottFrance2024-06-03Chemel, James L Cpa PROPOSAL53Asiya Javayant
1033Stacey L GillianBrazil2024-06-13Rangoni Of Florence RENEWAL42Asiya Javayant
1034Ivar H CaudyIndia2024-06-02King, Christopher A Esq PROPOSAL65Stephen Shaw
1035Aruna T MaletItaly2024-05-30Commercial Press NEGOTIATION79Amy Elsner
1036Octavia H RoysterJapan2024-05-30Chapman, Ross E Esq QUALIFIED55Elwin Sharvill
1037Stacey R RulapaughCanada2024-06-11Rangoni Of Florence NEW5Bernardo Dominic
1038Arvin G PoquetteGermany2024-06-09Chanay, Jeffrey A Esq NEW64Bernardo Dominic
1039Stacey F WaycottRussia2024-06-14King, Christopher A Esq UNQUALIFIED2Onyama Limba
1040Juan O KuskoSpain2024-06-12Truhlar And Truhlar Attys NEW89Anna Fali
1041Morrow C FlosiItaly2024-06-06Commercial Press PROPOSAL55Onyama Limba
1042Octavia S SlusarskiGermany2024-06-05Chapman, Ross E Esq RENEWAL94Amy Elsner
1043Cody U VocelkaSpain2024-06-14Truhlar And Truhlar Attys NEGOTIATION17Stephen Shaw
1044Wickens P TollnerAustralia2024-05-24Benton, John B Jr NEGOTIATION15Anna Fali
1045Jefferson R IturbideUnited Kingdom2024-05-31Benton, John B Jr QUALIFIED73Xuxue Feng
1046Tony N ShinkoRussia2024-06-14Chapman, Ross E Esq NEGOTIATION30Amy Elsner
1047Cody T ShinkoGermany2024-06-02Rousseaux, Michael Esq NEGOTIATION69Asiya Javayant
1048Kadeem I RulapaughIndia2024-06-05Morlong Associates NEGOTIATION81Onyama Limba
1049Mujtaba Z GauchoUnited Kingdom2024-06-02Chapman, Ross E Esq NEGOTIATION9Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Misaki P SaylorsGermanyXuxue Feng NEGOTIATION
Stacey P TollnerRussiaIoni Bowcher UNQUALIFIED
Morrow R BowleyGermanyAsiya Javayant QUALIFIED
Rodrigues W DarakjyAustraliaOnyama Limba RENEWAL
Aruna H FlosiAustraliaAmy Elsner RENEWAL
Emily O VenereIndiaOnyama Limba NEGOTIATION
Smith N SergiJapanIvan Magalhaes RENEWAL
Darci D WhobreyCanadaIvan Magalhaes UNQUALIFIED
Maria B KolmetzArgentinaXuxue Feng RENEWAL
Arvin H MarrierSpainOnyama Limba UNQUALIFIED
Silvio S MaletSpainIoni Bowcher QUALIFIED
Cody L BologniaJapanAsiya Javayant QUALIFIED
Alejandro W RimFranceStephen Shaw UNQUALIFIED
Izzy P PoquetteCanadaIoni Bowcher NEW
Jefferson K GillianBrazilBernardo Dominic QUALIFIED
Juan O FigeroaArgentinaBernardo Dominic PROPOSAL
Faith K VenereArgentinaAsiya Javayant PROPOSAL
Salvatore A SergiFranceElwin Sharvill NEW
Stacey W OstroskyBrazilStephen Shaw PROPOSAL
Wickens O PaprockiArgentinaAmy Elsner QUALIFIED
Julie W PoquetteBrazilAnna Fali QUALIFIED
Antonio B AmigonItalyAnna Fali NEGOTIATION
Faith M AlbaresUnited KingdomAnna Fali NEW
Kaitlin W DarakjyUnited KingdomBernardo Dominic NEGOTIATION
Ricardo H CampainItalyElwin Sharvill NEW
Emily M VocelkaAustraliaOnyama Limba RENEWAL
Leon F VocelkaRussiaIvan Magalhaes QUALIFIED
Mayumi R PoquetteGermanyAnna Fali NEW
Aika E RoysterSpainStephen Shaw RENEWAL
Wickens A RutaIndiaBernardo Dominic NEGOTIATION
Jefferson D MorascaJapanIoni Bowcher QUALIFIED
Rodrigues K DilliardUnited KingdomAmy Elsner RENEWAL
Aditya G WaycottJapanIvan Magalhaes UNQUALIFIED
Claire Q BologniaAustraliaStephen Shaw RENEWAL
Murillo N RimJapanAnna Fali RENEWAL
Rodrigues H RoysterUnited KingdomStephen Shaw QUALIFIED
Stacey J AlbaresBrazilAmy Elsner UNQUALIFIED
Kaitlin A AmigonGermanyElwin Sharvill QUALIFIED
Leon A SchemmerCanadaXuxue Feng PROPOSAL
Izzy Z KolmetzSpainXuxue Feng UNQUALIFIED
Kadeem S AlbaresBrazilAmy Elsner QUALIFIED
Mayumi X FerenczAustraliaStephen Shaw NEW
James C StockhamBrazilAnna Fali UNQUALIFIED
Faith H StensethItalyAmy Elsner NEW
Antonio B BologniaSpainAmy Elsner NEW
Arvin T IturbideArgentinaBernardo Dominic UNQUALIFIED
Nicolas P StensethJapanXuxue Feng NEW
Aditya U StockhamArgentinaStephen Shaw NEW
Claire F KolmetzRussiaIvan Magalhaes NEW
Jennifer P GauchoFranceStephen Shaw UNQUALIFIED
Frozen Columns
Name
Francesco B Foller
Leon W Caudy
Izzy W Vocelka
Costa T Iturbide
Jefferson T Ruta
Rodrigues E Doe
Francesco X Gaucho
Claire N Caudy
Sinclair T Malet
Kaitlin U Rulapaugh
Antonio N Malet
Mujtaba S Caudy
Izzy F Shinko
Clifford E Flosi
Tony U Ruta
Wickens G Iturbide
Leon S Albares
Clifford D Waycott
Sinclair R Amigon
Rodrigues M Glick
Ivar G Caudy
Ricardo F Malet
Murillo P Stockham
Kadeem R Foller
Isabel K Caldarera
Alejandro P Slusarski
David V Poquette
Greenwood M Ferencz
Costa U Whobrey
Tony R Morasca
Morrow Q Rim
Chavez I Kusko
Leon N Tollner
Jeanfrancois X Venere
Kaitlin X Kolmetz
Emily H Vocelka
Francesco V Perin
Wickens R Wieser
Jefferson I Briddick
Adams J Nicka
Arvin M Inouye
Smith T Sergi
Julie D Bowley
Johnson Y Shinko
Kaitlin U Nestle
Aruna D Morasca
Salvatore K Caldarera
Ricardo W Stockham
Isabel K Caudy
Salvatore U Chui
IdCountryDate
1000United Kingdom2024-05-31
1001Germany2024-06-05
1002France2024-05-23
1003Russia2024-06-12
1004Italy2024-05-27
1005Germany2024-05-27
1006Canada2024-06-05
1007Spain2024-06-15
1008Brazil2024-05-30
1009Germany2024-06-15
1010Spain2024-05-27
1011Japan2024-05-23
1012Germany2024-06-18
1013Canada2024-06-12
1014Russia2024-06-11
1015Argentina2024-06-12
1016Australia2024-06-19
1017Italy2024-06-19
1018Japan2024-06-09
1019Brazil2024-05-29
1020Germany2024-06-09
1021Italy2024-06-21
1022Canada2024-06-06
1023Australia2024-06-19
1024India2024-06-04
1025United Kingdom2024-06-21
1026France2024-06-07
1027Italy2024-06-04
1028Japan2024-06-05
1029Spain2024-06-19
1030Australia2024-06-13
1031Italy2024-06-10
1032India2024-06-03
1033Italy2024-06-17
1034Australia2024-06-16
1035Germany2024-05-27
1036Canada2024-05-26
1037Japan2024-06-20
1038France2024-06-02
1039Japan2024-06-04
1040Australia2024-06-21
1041Italy2024-05-27
1042Italy2024-06-21
1043Germany2024-06-11
1044Germany2024-06-09
1045Argentina2024-06-05
1046Brazil2024-06-05
1047Argentina2024-06-06
1048Canada2024-05-23
1049India2024-05-23

On-Demand Data

NameIdCountryDate
Silvio V Ruta1000Australia2024-05-24
Morrow S Shinko1001Germany2024-06-04
Ivar D Kusko1002Russia2024-06-21
Jefferson E Wieser1003Canada2024-06-08
Alejandro B Morasca1004Argentina2024-06-14
Mujtaba N Iturbide1005Canada2024-06-08
Adams I Amigon1006Japan2024-05-27
Octavia X Doe1007Canada2024-05-31
Johnson N Chui1008Germany2024-06-01
Jefferson D Saylors1009United Kingdom2024-06-13
Jefferson Y Oldroyd1010Italy2024-05-24
Jeanfrancois L Ruta1011Brazil2024-06-12
Kaitlin Y Paprocki1012United Kingdom2024-06-08
Francesco D Waycott1013France2024-05-29
Wickens E Perin1014India2024-06-13
Darci X Foller1015Canada2024-06-01
Darci C Campain1016United Kingdom2024-05-23
Stacey J Malet1017United Kingdom2024-06-14
Munro A Rim1018Canada2024-06-18
Wickens P Doe1019India2024-06-01
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
David L ButtGermanyIvan Magalhaes NEGOTIATION
Costa E PoquetteJapanAmy Elsner NEGOTIATION
Kadeem C StensethIndiaOnyama Limba NEW
Ricardo O FerenczCanadaElwin Sharvill PROPOSAL
Adams A WieserRussiaElwin Sharvill NEGOTIATION
Julie V FerenczGermanyIoni Bowcher RENEWAL
Deepesh Z FlosiBrazilIoni Bowcher RENEWAL
Rodrigues O PaprockiArgentinaIvan Magalhaes NEW
Jeanfrancois X PaprockiRussiaAmy Elsner NEGOTIATION
Izzy M DilliardRussiaIoni Bowcher PROPOSAL
Aika W ChuiGermanyAsiya Javayant QUALIFIED
Juan M PerinAustraliaAnna Fali NEGOTIATION
Ricardo C RulapaughCanadaIvan Magalhaes RENEWAL
Stacey J StensethRussiaBernardo Dominic RENEWAL
Morrow D VocelkaAustraliaIvan Magalhaes PROPOSAL
Cody Q PoquetteSpainAmy Elsner NEGOTIATION
Silvio F PaprockiIndiaElwin Sharvill QUALIFIED
Murillo N KolmetzIndiaXuxue Feng NEW
Octavia K RulapaughItalyElwin Sharvill UNQUALIFIED
Misaki H AlbaresSpainAsiya Javayant PROPOSAL
Aditya V PerinItalyIvan Magalhaes QUALIFIED
Deepesh H FlosiRussiaElwin Sharvill QUALIFIED
Antonio F AlbaresGermanyIvan Magalhaes NEGOTIATION
Emily X VenereSpainAnna Fali NEW
Ashley F KuskoSpainAnna Fali NEGOTIATION
Arvin A SergiGermanyElwin Sharvill UNQUALIFIED
Maria T MacleadSpainAmy Elsner RENEWAL
Francesco P PerinFranceOnyama Limba RENEWAL
David N StensethBrazilAmy Elsner QUALIFIED
Kaitlin P WhobreyBrazilAnna Fali NEGOTIATION
Chavez F TollnerIndiaIoni Bowcher NEGOTIATION
Faith O MorascaCanadaAnna Fali NEGOTIATION
Faith D RutaAustraliaIoni Bowcher UNQUALIFIED
Deepesh R WieserItalyAnna Fali NEW
Jennifer Q MarrierIndiaAmy Elsner UNQUALIFIED
Kadeem L RoysterRussiaBernardo Dominic UNQUALIFIED
Maisha U RulapaughBrazilOnyama Limba NEGOTIATION
Silvio J SaylorsAustraliaElwin Sharvill NEGOTIATION
Ricardo M RimJapanAmy Elsner RENEWAL
Clifford L StensethAustraliaBernardo Dominic QUALIFIED

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