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
Adams F DarakjyFranceIvan Magalhaes NEW
Jennifer W ShinkoBrazilIvan Magalhaes UNQUALIFIED
Sinclair V CaldareraAustraliaElwin Sharvill UNQUALIFIED
Izzy Y BriddickUnited KingdomAnna Fali NEW
Jeanfrancois A DoeIndiaAsiya Javayant QUALIFIED
Costa G GillianAustraliaXuxue Feng QUALIFIED
Stacey S FollerSpainElwin Sharvill RENEWAL
Aditya R VocelkaGermanyXuxue Feng PROPOSAL
Wickens F NickaFranceAnna Fali QUALIFIED
Aditya Y ShinkoBrazilAmy Elsner UNQUALIFIED
Ivar H RimRussiaIvan Magalhaes QUALIFIED
Arvin T FerenczAustraliaIvan Magalhaes QUALIFIED
Ashley W GarufiRussiaXuxue Feng RENEWAL
Maisha H FlosiCanadaAsiya Javayant UNQUALIFIED
Ivar M NickaAustraliaElwin Sharvill RENEWAL
David D DarakjyBrazilIvan Magalhaes RENEWAL
Aika K FollerUnited KingdomIoni Bowcher UNQUALIFIED
Faith J DoeRussiaElwin Sharvill NEW
James G RutaBrazilIoni Bowcher NEGOTIATION
Faith B OldroydGermanyElwin Sharvill RENEWAL
Jennifer P PerinAustraliaAmy Elsner PROPOSAL
Adams Q OstroskyAustraliaBernardo Dominic RENEWAL
Julie E GlickCanadaAsiya Javayant UNQUALIFIED
Izzy M CaldareraArgentinaElwin Sharvill RENEWAL
Greenwood P FollerRussiaStephen Shaw PROPOSAL
James L FollerCanadaAmy Elsner PROPOSAL
Ashley D AlbaresJapanOnyama Limba RENEWAL
Darci I CaldareraAustraliaElwin Sharvill QUALIFIED
Kaitlin K DarakjyArgentinaAsiya Javayant NEW
Jeanfrancois L GauchoJapanAmy Elsner RENEWAL
Aditya F FlosiRussiaIvan Magalhaes PROPOSAL
Juan K StensethFranceXuxue Feng RENEWAL
Leja T FigeroaItalyIvan Magalhaes UNQUALIFIED
Kaitlin Y OldroydBrazilStephen Shaw NEGOTIATION
Silvio O KolmetzSpainXuxue Feng NEGOTIATION
Morrow Q AmigonFranceIoni Bowcher NEGOTIATION
Aika H PoquetteCanadaIvan Magalhaes QUALIFIED
Aika S MarrierIndiaOnyama Limba PROPOSAL
Chavez P WieserUnited KingdomIoni Bowcher UNQUALIFIED
Jennifer W OldroydGermanyAsiya Javayant QUALIFIED
Faith I IturbideCanadaIvan Magalhaes RENEWAL
David S FlosiItalyAnna Fali PROPOSAL
Faith L RutaBrazilAmy Elsner UNQUALIFIED
Stacey N VenereItalyIvan Magalhaes QUALIFIED
Rodrigues I OldroydIndiaIvan Magalhaes QUALIFIED
Kadeem D KuskoSpainAsiya Javayant PROPOSAL
Cody A GlickGermanyXuxue Feng RENEWAL
David I SchemmerFranceOnyama Limba UNQUALIFIED
Maisha Y SlusarskiCanadaIoni Bowcher NEGOTIATION
Claire V BologniaCanadaAsiya Javayant PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Kadeem H NestleIndiaIvan Magalhaes NEW
Aruna Z NickaArgentinaIoni Bowcher NEGOTIATION
Sinclair X DarakjyArgentinaOnyama Limba NEW
Kaitlin N CaudySpainIoni Bowcher RENEWAL
Ivar B ChuiIndiaOnyama Limba RENEWAL
Jennifer B StensethCanadaIoni Bowcher RENEWAL
Octavia D PerinItalyOnyama Limba NEGOTIATION
Nicolas S IturbideItalyElwin Sharvill NEGOTIATION
Morrow Y MarrierRussiaAnna Fali UNQUALIFIED
Ricardo E WaycottGermanyXuxue Feng UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Kadeem Z CaldareraFrance2024-06-18Chemel, James L Cpa QUALIFIED47Bernardo Dominic
1001Ashley J WhobreyUnited Kingdom2024-06-08Chapman, Ross E Esq UNQUALIFIED32Ivan Magalhaes
1002Chavez K SlusarskiSpain2024-06-16Chemel, James L Cpa NEW57Elwin Sharvill
1003James H AlbaresGermany2024-06-01Buckley Miller Wright QUALIFIED19Elwin Sharvill
1004Ricardo Y StensethAustralia2024-05-30Feiner Bros NEGOTIATION94Onyama Limba
1005Morrow U DoeBrazil2024-05-26Benton, John B Jr QUALIFIED40Stephen Shaw
1006Emily J SchemmerBrazil2024-05-24Rousseaux, Michael Esq PROPOSAL50Anna Fali
1007Alejandro W ShinkoBrazil2024-06-08Buckley Miller Wright PROPOSAL69Stephen Shaw
1008Salvatore E FollerSpain2024-05-28Chapman, Ross E Esq PROPOSAL61Anna Fali
1009Julie M WieserFrance2024-06-17Buckley Miller Wright NEW41Xuxue Feng
1010Francesco O GillianBrazil2024-06-08Morlong Associates UNQUALIFIED39Bernardo Dominic
1011Stacey S VocelkaIndia2024-06-03Commercial Press QUALIFIED68Xuxue Feng
1012Ricardo B FerenczArgentina2024-06-16Buckley Miller Wright PROPOSAL63Anna Fali
1013Rodrigues W SergiItaly2024-05-23Rangoni Of Florence UNQUALIFIED18Anna Fali
1014Jeanfrancois Q FollerBrazil2024-06-21Rousseaux, Michael Esq NEGOTIATION28Anna Fali
1015Francesco Y GauchoItaly2024-05-26Morlong Associates NEW15Ioni Bowcher
1016Jones R MaletCanada2024-06-05Printing Dimensions RENEWAL30Asiya Javayant
1017Deepesh B BowleyArgentina2024-05-30Commercial Press RENEWAL6Bernardo Dominic
1018Munro H FollerBrazil2024-06-13Rousseaux, Michael Esq UNQUALIFIED87Amy Elsner
1019Chavez K WhobreyRussia2024-05-31Buckley Miller Wright NEGOTIATION20Elwin Sharvill
1020Maisha L ShinkoFrance2024-06-20Printing Dimensions UNQUALIFIED76Ioni Bowcher
1021Mujtaba P FlosiArgentina2024-06-07Feltz Printing Service NEGOTIATION91Ioni Bowcher
1022Alejandro C IturbideAustralia2024-06-11Buckley Miller Wright QUALIFIED55Stephen Shaw
1023Izzy C FollerArgentina2024-06-08Dorl, James J Esq RENEWAL48Anna Fali
1024Sinclair X BriddickRussia2024-05-24Feltz Printing Service RENEWAL73Ioni Bowcher
1025Munro W MarrierFrance2024-06-21Printing Dimensions QUALIFIED25Asiya Javayant
1026Darci P NickaFrance2024-06-20Truhlar And Truhlar Attys PROPOSAL33Ioni Bowcher
1027Juan K MacleadAustralia2024-06-14Dorl, James J Esq RENEWAL16Elwin Sharvill
1028Faith F OstroskyBrazil2024-06-11Commercial Press NEW7Amy Elsner
1029Nicolas Y VocelkaSpain2024-06-06Commercial Press QUALIFIED99Anna Fali
1030Leon O StockhamRussia2024-06-13Rangoni Of Florence NEGOTIATION71Ivan Magalhaes
1031Cody K OstroskyBrazil2024-05-30Rangoni Of Florence QUALIFIED5Onyama Limba
1032Isabel O GauchoFrance2024-06-16Rangoni Of Florence PROPOSAL31Elwin Sharvill
1033Jefferson G BologniaSpain2024-06-01Benton, John B Jr RENEWAL18Anna Fali
1034Juan W VenereSpain2024-06-16Morlong Associates PROPOSAL57Ioni Bowcher
1035Ashley R MaletJapan2024-05-27Benton, John B Jr UNQUALIFIED26Asiya Javayant
1036Aika E FlosiJapan2024-05-23Morlong Associates PROPOSAL92Ivan Magalhaes
1037Jefferson V MacleadArgentina2024-06-03Chanay, Jeffrey A Esq PROPOSAL76Onyama Limba
1038Octavia H MacleadIndia2024-06-04Benton, John B Jr PROPOSAL28Onyama Limba
1039Jones B FlosiRussia2024-05-29Rousseaux, Michael Esq RENEWAL63Ivan Magalhaes
1040James F ChuiRussia2024-06-07Buckley Miller Wright PROPOSAL36Ioni Bowcher
1041David I GarufiUnited Kingdom2024-05-25Printing Dimensions UNQUALIFIED97Ivan Magalhaes
1042Julie T VenereSpain2024-06-19Dorl, James J Esq QUALIFIED13Ivan Magalhaes
1043David M NickaJapan2024-05-27Chapman, Ross E Esq RENEWAL45Amy Elsner
1044Faith C InouyeArgentina2024-05-27Commercial Press QUALIFIED28Amy Elsner
1045Antonio G MacleadUnited Kingdom2024-06-19Commercial Press NEGOTIATION12Ivan Magalhaes
1046Juan R SchemmerCanada2024-06-15Morlong Associates NEGOTIATION91Anna Fali
1047Mujtaba W KolmetzFrance2024-06-02Truhlar And Truhlar Attys NEW9Ioni Bowcher
1048Emily N GillianIndia2024-06-06Printing Dimensions PROPOSAL31Elwin Sharvill
1049Mujtaba Y VocelkaRussia2024-05-30Truhlar And Truhlar Attys PROPOSAL49Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Aditya M VenereGermanyIvan Magalhaes RENEWAL
Sinclair O VocelkaGermanyIvan Magalhaes NEW
Kaitlin R VenereAustraliaBernardo Dominic NEGOTIATION
Misaki B FlosiSpainIvan Magalhaes QUALIFIED
Aruna Q RimUnited KingdomElwin Sharvill QUALIFIED
Arvin F FollerAustraliaXuxue Feng NEGOTIATION
Sinclair S BriddickSpainIoni Bowcher NEW
Francesco G TollnerCanadaElwin Sharvill QUALIFIED
Izzy U InouyeJapanOnyama Limba PROPOSAL
Deepesh I VenereBrazilAsiya Javayant UNQUALIFIED
Smith I KolmetzIndiaIoni Bowcher NEW
Alejandro X ButtRussiaAnna Fali QUALIFIED
Kadeem B ChuiUnited KingdomAsiya Javayant RENEWAL
Juan O GauchoAustraliaIoni Bowcher NEW
Claire T RulapaughBrazilBernardo Dominic NEW
Leon N FigeroaRussiaIoni Bowcher RENEWAL
Jennifer L BologniaArgentinaStephen Shaw UNQUALIFIED
Maria O ShinkoBrazilStephen Shaw UNQUALIFIED
Ivar Y DoeUnited KingdomIoni Bowcher NEW
Nicolas S OstroskyBrazilOnyama Limba NEW
Izzy F ChuiIndiaElwin Sharvill NEW
Rodrigues B DarakjyJapanIvan Magalhaes PROPOSAL
Smith Y WaycottJapanElwin Sharvill NEW
Leja H RimArgentinaIvan Magalhaes NEGOTIATION
Juan P TollnerAustraliaStephen Shaw QUALIFIED
Deepesh U MacleadBrazilIoni Bowcher NEW
Francesco S NickaGermanyXuxue Feng QUALIFIED
Chavez C GarufiFranceIvan Magalhaes QUALIFIED
Chavez O MacleadIndiaAnna Fali PROPOSAL
James B ChuiCanadaAnna Fali NEGOTIATION
Sinclair C VocelkaFranceElwin Sharvill QUALIFIED
Emily I PerinFranceIvan Magalhaes UNQUALIFIED
Deepesh L WieserIndiaOnyama Limba QUALIFIED
Leja H NestleBrazilAmy Elsner PROPOSAL
Sinclair X IturbideIndiaStephen Shaw UNQUALIFIED
Alejandro K VocelkaJapanBernardo Dominic NEW
Johnson K KolmetzUnited KingdomBernardo Dominic QUALIFIED
Misaki S VenereSpainAmy Elsner NEW
Jeanfrancois F KolmetzRussiaAmy Elsner PROPOSAL
Mujtaba U FigeroaCanadaAnna Fali RENEWAL
Leja C MaletUnited KingdomOnyama Limba RENEWAL
Leja I FollerUnited KingdomIoni Bowcher RENEWAL
Sinclair R GlickBrazilIoni Bowcher UNQUALIFIED
Jones W InouyeUnited KingdomIvan Magalhaes NEW
Claire B FlosiSpainIvan Magalhaes PROPOSAL
Isabel R IturbideItalyXuxue Feng UNQUALIFIED
Maria B RoysterGermanyIvan Magalhaes NEGOTIATION
Aruna Y CaudyCanadaAmy Elsner PROPOSAL
Kaitlin S MarrierFranceElwin Sharvill RENEWAL
Isabel P GlickIndiaElwin Sharvill NEGOTIATION
Frozen Columns
Name
Jones G Caudy
Clifford C Figeroa
Arvin B Rim
Greenwood X Iturbide
Silvio H Nicka
Julie A Sergi
Nicolas E Ferencz
Aruna J Caudy
Rodrigues R Nestle
Leon Q Royster
Alejandro N Poquette
Jeanfrancois S Nicka
Darci K Ferencz
Julie V Nicka
Aditya M Foller
Morrow K Perin
Clifford V Kusko
Johnson W Figeroa
Sinclair W Marrier
Darci X Bowley
Francesco C Tollner
Aruna Y Inouye
Jeanfrancois G Oldroyd
Juan A Marrier
Sinclair M Royster
Johnson D Ferencz
Maisha T Oldroyd
Jones N Inouye
Wickens K Flosi
Kadeem Y Marrier
Izzy M Flosi
Stacey W Tollner
Juan T Sergi
Misaki Q Darakjy
Murillo I Rim
Clifford B Malet
Aditya C Caudy
Mujtaba R Poquette
Chavez S Tollner
Deepesh V Figeroa
Adams H Wieser
Costa L Kusko
Munro J Maclead
Morrow Q Vocelka
Francesco J Glick
Octavia O Ostrosky
Izzy U Chui
Rodrigues G Kusko
Kadeem W Royster
Francesco B Flosi
IdCountryDate
1000Canada2024-06-02
1001Japan2024-06-16
1002Australia2024-06-07
1003Brazil2024-06-03
1004Germany2024-06-21
1005Russia2024-06-19
1006India2024-06-12
1007Brazil2024-06-03
1008Argentina2024-06-02
1009Germany2024-05-28
1010Russia2024-06-01
1011India2024-06-07
1012Germany2024-06-18
1013Argentina2024-06-17
1014Germany2024-06-03
1015Argentina2024-06-12
1016Japan2024-06-19
1017Italy2024-05-29
1018Australia2024-06-10
1019France2024-06-08
1020Argentina2024-06-16
1021United Kingdom2024-06-10
1022Italy2024-06-04
1023France2024-06-02
1024Australia2024-06-10
1025Germany2024-06-18
1026India2024-05-28
1027Canada2024-06-01
1028France2024-05-23
1029Japan2024-06-20
1030Germany2024-05-26
1031Australia2024-06-14
1032Australia2024-06-02
1033Russia2024-05-31
1034Canada2024-06-17
1035Italy2024-06-11
1036Germany2024-06-14
1037Brazil2024-06-13
1038Germany2024-05-31
1039Germany2024-06-14
1040Spain2024-06-15
1041Germany2024-05-31
1042Argentina2024-06-02
1043Australia2024-06-21
1044United Kingdom2024-06-02
1045Italy2024-06-11
1046United Kingdom2024-06-16
1047Italy2024-06-08
1048Argentina2024-06-08
1049India2024-06-19

On-Demand Data

NameIdCountryDate
Leon V Flosi1000Japan2024-06-05
Nicolas A Morasca1001United Kingdom2024-06-07
Costa N Schemmer1002India2024-06-06
Rodrigues J Caldarera1003Brazil2024-05-30
Arvin L Malet1004Russia2024-05-25
Julie X Garufi1005Russia2024-06-17
Maisha E Iturbide1006Australia2024-05-30
Jennifer B Slusarski1007Germany2024-06-10
Clifford F Chui1008Spain2024-05-29
Claire K Ruta1009Spain2024-06-17
Antonio C Chui1010Russia2024-05-26
Tony W Doe1011United Kingdom2024-06-12
Chavez R Gillian1012Brazil2024-06-12
Izzy S Stenseth1013Germany2024-06-04
Mayumi E Sergi1014Russia2024-06-08
Cody H Stenseth1015United Kingdom2024-06-08
Julie Y Flosi1016Russia2024-05-30
Ricardo O Whobrey1017India2024-06-18
Morrow D Shinko1018Italy2024-06-03
Wickens F Garufi1019Russia2024-06-18
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aika Z MarrierIndiaXuxue Feng PROPOSAL
Aruna R CaudyIndiaAmy Elsner UNQUALIFIED
Maisha J StockhamAustraliaAmy Elsner NEGOTIATION
Juan K PerinRussiaAmy Elsner PROPOSAL
Antonio N InouyeBrazilAmy Elsner RENEWAL
Octavia Z IturbideArgentinaStephen Shaw PROPOSAL
Silvio S PaprockiSpainAnna Fali UNQUALIFIED
Aika L FerenczRussiaOnyama Limba UNQUALIFIED
Maria G ButtIndiaAmy Elsner NEW
Darci E RimArgentinaBernardo Dominic RENEWAL
Arvin Y DarakjyItalyOnyama Limba QUALIFIED
Ricardo G SaylorsFranceIoni Bowcher UNQUALIFIED
Antonio E VenereCanadaBernardo Dominic NEW
Mujtaba O IturbideJapanXuxue Feng PROPOSAL
Cody M BriddickAustraliaAsiya Javayant RENEWAL
Salvatore L KolmetzIndiaXuxue Feng UNQUALIFIED
Aika T GauchoIndiaAmy Elsner NEW
Salvatore S GillianAustraliaAnna Fali UNQUALIFIED
Munro Q MarrierFranceOnyama Limba UNQUALIFIED
Octavia G StockhamFranceAmy Elsner RENEWAL
Julie N OldroydArgentinaAnna Fali UNQUALIFIED
Silvio L SaylorsCanadaIvan Magalhaes RENEWAL
Nicolas B WhobreyIndiaXuxue Feng PROPOSAL
Sinclair Q MacleadSpainElwin Sharvill RENEWAL
James T ChuiUnited KingdomAnna Fali PROPOSAL
Octavia M NestleIndiaElwin Sharvill QUALIFIED
Stacey W WieserCanadaStephen Shaw QUALIFIED
Nicolas R FlosiSpainAsiya Javayant RENEWAL
Stacey V ChuiBrazilBernardo Dominic NEW
Nicolas Z IturbideIndiaIoni Bowcher QUALIFIED
Aruna I ButtItalyBernardo Dominic QUALIFIED
Antonio P AlbaresItalyAnna Fali NEW
Ashley P OstroskyArgentinaOnyama Limba UNQUALIFIED
Octavia H VocelkaArgentinaElwin Sharvill NEW
Nicolas Q VenereFranceElwin Sharvill NEGOTIATION
Chavez F WaycottGermanyElwin Sharvill UNQUALIFIED
Mayumi E VocelkaIndiaElwin Sharvill QUALIFIED
Ashley B RoysterBrazilIoni Bowcher RENEWAL
Maisha O PaprockiArgentinaBernardo Dominic UNQUALIFIED
Faith H KolmetzIndiaElwin Sharvill RENEWAL

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