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
James R CaudyAustraliaIvan Magalhaes QUALIFIED
Isabel S VenereCanadaStephen Shaw PROPOSAL
Mujtaba B PoquetteFranceAsiya Javayant UNQUALIFIED
Jones K DilliardJapanIvan Magalhaes NEW
Salvatore H GauchoUnited KingdomOnyama Limba UNQUALIFIED
Ricardo H CaldareraFranceOnyama Limba QUALIFIED
Sinclair Z GauchoUnited KingdomElwin Sharvill QUALIFIED
Cody Z BriddickUnited KingdomOnyama Limba NEGOTIATION
Claire C ShinkoSpainXuxue Feng PROPOSAL
Maria C StensethFranceIvan Magalhaes QUALIFIED
Faith P SaylorsSpainIvan Magalhaes QUALIFIED
Mayumi A StensethGermanyElwin Sharvill NEW
Mayumi K RimArgentinaAnna Fali QUALIFIED
Leja C RulapaughItalyXuxue Feng NEGOTIATION
Sinclair I WieserFranceIvan Magalhaes QUALIFIED
David J MorascaArgentinaStephen Shaw QUALIFIED
Salvatore E MorascaIndiaAmy Elsner RENEWAL
Sinclair D IturbideRussiaElwin Sharvill RENEWAL
Leon S NestleCanadaOnyama Limba UNQUALIFIED
Maria I BowleyFranceAsiya Javayant RENEWAL
Aditya M IturbideAustraliaIvan Magalhaes PROPOSAL
Octavia P WhobreyBrazilIvan Magalhaes NEGOTIATION
Jones Z RutaArgentinaXuxue Feng RENEWAL
Costa C DilliardRussiaBernardo Dominic QUALIFIED
Faith P InouyeBrazilXuxue Feng NEGOTIATION
Izzy U CaudyAustraliaAnna Fali NEW
Costa D ButtSpainXuxue Feng PROPOSAL
Aruna U RutaBrazilBernardo Dominic NEGOTIATION
Claire N CaudyCanadaXuxue Feng NEGOTIATION
Adams S SergiIndiaAsiya Javayant RENEWAL
Kadeem B FlosiIndiaXuxue Feng NEGOTIATION
Johnson Q SaylorsFranceBernardo Dominic NEGOTIATION
Emily Y RimSpainAmy Elsner PROPOSAL
Greenwood D ShinkoArgentinaOnyama Limba PROPOSAL
Julie V VenereRussiaOnyama Limba NEW
Salvatore U MaletIndiaOnyama Limba NEW
Costa O DilliardIndiaBernardo Dominic NEW
Adams F SlusarskiUnited KingdomAsiya Javayant QUALIFIED
Emily S AmigonIndiaBernardo Dominic NEW
Juan L WhobreyIndiaIoni Bowcher PROPOSAL
Isabel J RutaCanadaAsiya Javayant UNQUALIFIED
Ashley W BowleySpainIoni Bowcher NEGOTIATION
Murillo G RulapaughSpainAmy Elsner UNQUALIFIED
Chavez V SaylorsArgentinaOnyama Limba PROPOSAL
Arvin Y StockhamArgentinaStephen Shaw RENEWAL
David X IturbideRussiaXuxue Feng PROPOSAL
Mayumi P NickaArgentinaIvan Magalhaes RENEWAL
Juan Q VenereCanadaStephen Shaw QUALIFIED
Wickens Y DarakjyItalyXuxue Feng UNQUALIFIED
Kaitlin Y DoeCanadaAsiya Javayant NEW
Horizontal
NameCountryRepresentativeStatus
Aruna Q ShinkoJapanElwin Sharvill UNQUALIFIED
Maisha Z WaycottBrazilBernardo Dominic QUALIFIED
Ricardo S SergiFranceAnna Fali PROPOSAL
Izzy F FigeroaIndiaAmy Elsner UNQUALIFIED
Wickens H NestleRussiaAnna Fali QUALIFIED
Johnson G MacleadFranceElwin Sharvill UNQUALIFIED
Johnson M WhobreyJapanXuxue Feng UNQUALIFIED
Salvatore K GillianAustraliaBernardo Dominic UNQUALIFIED
Maria O ShinkoItalyStephen Shaw NEGOTIATION
David M PerinJapanBernardo Dominic NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Isabel D FlosiItaly2025-06-10Chemel, James L Cpa NEW44Elwin Sharvill
1001Ivar W RutaItaly2025-06-07Benton, John B Jr PROPOSAL42Onyama Limba
1002Ashley I AlbaresAustralia2025-05-24Commercial Press UNQUALIFIED15Ivan Magalhaes
1003Faith G RulapaughUnited Kingdom2025-06-03Truhlar And Truhlar Attys UNQUALIFIED1Ioni Bowcher
1004Juan R AmigonFrance2025-05-19Rangoni Of Florence PROPOSAL12Ivan Magalhaes
1005Claire L RoysterJapan2025-05-23King, Christopher A Esq QUALIFIED32Xuxue Feng
1006Antonio M BowleyAustralia2025-05-29Dorl, James J Esq RENEWAL49Elwin Sharvill
1007Julie C RutaJapan2025-06-06Chemel, James L Cpa RENEWAL18Asiya Javayant
1008Mayumi E CaldareraFrance2025-05-31Rangoni Of Florence QUALIFIED36Ioni Bowcher
1009Sinclair W WieserArgentina2025-05-29Feltz Printing Service RENEWAL87Anna Fali
1010Murillo C RutaItaly2025-05-24Rangoni Of Florence RENEWAL73Amy Elsner
1011Morrow Q CampainIndia2025-06-07Chemel, James L Cpa NEGOTIATION83Ioni Bowcher
1012Deepesh Y SchemmerAustralia2025-06-12Rangoni Of Florence QUALIFIED70Onyama Limba
1013Faith Z GauchoGermany2025-05-23Feiner Bros QUALIFIED6Ioni Bowcher
1014Aditya H ButtBrazil2025-05-23Morlong Associates RENEWAL35Bernardo Dominic
1015James U RutaAustralia2025-06-10Feltz Printing Service NEGOTIATION18Amy Elsner
1016Rodrigues M IturbideGermany2025-06-14Rousseaux, Michael Esq NEGOTIATION22Asiya Javayant
1017Aika A StensethSpain2025-05-30Benton, John B Jr NEW49Ivan Magalhaes
1018Nicolas T GauchoIndia2025-06-01King, Christopher A Esq NEW96Anna Fali
1019Leon N RimSpain2025-06-12Dorl, James J Esq NEW55Anna Fali
1020Juan T MorascaUnited Kingdom2025-05-21Feltz Printing Service PROPOSAL0Asiya Javayant
1021Aditya B WaycottItaly2025-05-25Feltz Printing Service RENEWAL50Ivan Magalhaes
1022Silvio J KolmetzFrance2025-05-27Benton, John B Jr PROPOSAL46Amy Elsner
1023Leja D SchemmerSpain2025-05-25Feltz Printing Service NEW41Xuxue Feng
1024Clifford O ButtAustralia2025-06-06Commercial Press QUALIFIED55Anna Fali
1025Greenwood R NickaRussia2025-05-25Dorl, James J Esq RENEWAL77Xuxue Feng
1026Jones R StockhamIndia2025-05-19Buckley Miller Wright RENEWAL0Bernardo Dominic
1027Jones P MaletIndia2025-05-24Commercial Press NEGOTIATION32Ivan Magalhaes
1028James S MaletJapan2025-06-01Feiner Bros NEGOTIATION19Bernardo Dominic
1029Greenwood Z SaylorsItaly2025-05-29Commercial Press PROPOSAL46Stephen Shaw
1030Tony Y MacleadSpain2025-06-03Rousseaux, Michael Esq RENEWAL2Elwin Sharvill
1031Maria O MarrierRussia2025-06-01Truhlar And Truhlar Attys UNQUALIFIED79Xuxue Feng
1032Jennifer N AmigonArgentina2025-05-30Rangoni Of Florence RENEWAL30Elwin Sharvill
1033Juan H NickaAustralia2025-05-25King, Christopher A Esq QUALIFIED88Xuxue Feng
1034Rodrigues L RutaRussia2025-05-20Chapman, Ross E Esq UNQUALIFIED51Amy Elsner
1035Faith Z KolmetzCanada2025-06-04Chemel, James L Cpa RENEWAL48Stephen Shaw
1036Jefferson Y OstroskyIndia2025-05-28Truhlar And Truhlar Attys NEW46Xuxue Feng
1037Silvio L ChuiSpain2025-06-10Benton, John B Jr RENEWAL3Onyama Limba
1038Jeanfrancois K InouyeArgentina2025-06-04Feltz Printing Service UNQUALIFIED99Ivan Magalhaes
1039Jeanfrancois V SaylorsArgentina2025-06-06Feltz Printing Service RENEWAL38Xuxue Feng
1040Izzy B SlusarskiArgentina2025-06-04Commercial Press NEGOTIATION20Stephen Shaw
1041Adams L RulapaughBrazil2025-06-05King, Christopher A Esq NEGOTIATION44Amy Elsner
1042Claire T InouyeSpain2025-06-07Chapman, Ross E Esq UNQUALIFIED37Onyama Limba
1043Aditya Z PerinAustralia2025-06-14Morlong Associates UNQUALIFIED20Asiya Javayant
1044Aruna L MaletCanada2025-05-29Chapman, Ross E Esq PROPOSAL57Elwin Sharvill
1045Tony P FlosiUnited Kingdom2025-06-15Chemel, James L Cpa NEGOTIATION97Ioni Bowcher
1046Juan C CampainArgentina2025-05-26Buckley Miller Wright UNQUALIFIED95Stephen Shaw
1047Greenwood Q MorascaArgentina2025-05-24Benton, John B Jr NEW59Bernardo Dominic
1048Deepesh D RutaGermany2025-05-24Benton, John B Jr QUALIFIED2Anna Fali
1049Emily J PaprockiItaly2025-05-19King, Christopher A Esq NEW74Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Greenwood Y SaylorsSpainElwin Sharvill NEGOTIATION
Jefferson K RutaItalyStephen Shaw NEW
Cody O InouyeIndiaIvan Magalhaes NEGOTIATION
Juan D PoquetteArgentinaAsiya Javayant NEW
Clifford N InouyeIndiaAmy Elsner UNQUALIFIED
Stacey C PoquetteUnited KingdomAnna Fali QUALIFIED
Arvin Y MorascaRussiaXuxue Feng NEGOTIATION
James I MaletArgentinaOnyama Limba NEGOTIATION
Ashley X VocelkaItalyOnyama Limba NEW
Munro M KolmetzAustraliaIoni Bowcher RENEWAL
Octavia U MaletArgentinaAsiya Javayant RENEWAL
Stacey E PerinGermanyXuxue Feng NEGOTIATION
Silvio A FerenczAustraliaIvan Magalhaes NEGOTIATION
Nicolas B OldroydBrazilAsiya Javayant NEGOTIATION
Kaitlin T WaycottSpainAmy Elsner NEGOTIATION
Emily I GillianCanadaAsiya Javayant PROPOSAL
Silvio P BologniaBrazilIoni Bowcher PROPOSAL
Leon Z RulapaughItalyXuxue Feng NEW
Salvatore D DilliardGermanyAmy Elsner RENEWAL
Salvatore W MaletJapanIvan Magalhaes NEGOTIATION
Aruna I ChuiJapanElwin Sharvill NEW
David A InouyeArgentinaBernardo Dominic NEGOTIATION
Sinclair J BowleyUnited KingdomAnna Fali UNQUALIFIED
Mujtaba J DoeRussiaStephen Shaw PROPOSAL
David W MarrierItalyBernardo Dominic QUALIFIED
Faith Q FerenczFranceIoni Bowcher UNQUALIFIED
Emily Q GarufiRussiaBernardo Dominic PROPOSAL
Octavia U SchemmerBrazilIoni Bowcher PROPOSAL
Johnson V FollerAustraliaIvan Magalhaes NEGOTIATION
Isabel G BriddickUnited KingdomXuxue Feng NEGOTIATION
Aika G MarrierRussiaBernardo Dominic RENEWAL
Aika Z BologniaFranceBernardo Dominic UNQUALIFIED
Aditya Q VenereItalyElwin Sharvill PROPOSAL
Isabel C MaletFranceXuxue Feng QUALIFIED
Antonio P ButtAustraliaStephen Shaw NEGOTIATION
Cody C PaprockiIndiaStephen Shaw NEW
Morrow E AlbaresUnited KingdomOnyama Limba NEW
Costa S SchemmerBrazilIvan Magalhaes NEW
Rodrigues K VocelkaSpainElwin Sharvill NEW
Claire S GillianCanadaOnyama Limba UNQUALIFIED
Aika A MaletFranceBernardo Dominic PROPOSAL
Mujtaba L BologniaArgentinaAnna Fali QUALIFIED
Maisha L PerinJapanIvan Magalhaes QUALIFIED
Alejandro I PerinCanadaXuxue Feng NEGOTIATION
David Z DoeArgentinaElwin Sharvill QUALIFIED
Octavia P GillianArgentinaAsiya Javayant NEGOTIATION
Deepesh W DilliardUnited KingdomXuxue Feng PROPOSAL
Juan L ButtRussiaAnna Fali QUALIFIED
Mujtaba E GillianAustraliaElwin Sharvill NEGOTIATION
Jeanfrancois T WaycottArgentinaIoni Bowcher UNQUALIFIED
Frozen Columns
Name
Arvin Q Iturbide
Jefferson N Tollner
Alejandro C Sergi
Maria Y Wieser
Alejandro K Chui
Izzy I Poquette
Izzy O Glick
Wickens R Royster
Wickens G Gaucho
Misaki C Ruta
Ricardo I Venere
Sinclair E Stockham
Aika H Morasca
Murillo O Saylors
Sinclair P Marrier
Mujtaba M Rim
Morrow Y Whobrey
Morrow R Dilliard
Silvio Y Figeroa
Tony C Perin
Clifford U Wieser
Kadeem E Garufi
Claire X Tollner
Antonio S Darakjy
Misaki I Stenseth
Morrow Q Oldroyd
Maisha N Nestle
Darci P Schemmer
Munro Y Darakjy
Francesco B Ostrosky
Costa M Schemmer
Ricardo R Albares
Jeanfrancois T Glick
Deepesh Z Marrier
Mayumi N Slusarski
Misaki O Bowley
Deepesh M Iturbide
Misaki M Amigon
Aruna W Albares
Chavez X Glick
Jones M Kolmetz
Chavez B Campain
Juan T Iturbide
Octavia P Rulapaugh
Murillo M Saylors
Julie S Malet
Isabel H Stenseth
Misaki R Ferencz
Izzy O Shinko
Ivar T Wieser
IdCountryDate
1000India2025-06-01
1001United Kingdom2025-05-22
1002Italy2025-05-28
1003Germany2025-06-16
1004United Kingdom2025-06-16
1005Germany2025-05-24
1006Germany2025-06-01
1007Italy2025-06-03
1008Brazil2025-05-21
1009United Kingdom2025-05-30
1010Italy2025-05-26
1011India2025-06-03
1012France2025-05-30
1013Argentina2025-05-29
1014Japan2025-05-28
1015Italy2025-06-14
1016Brazil2025-06-05
1017Japan2025-05-31
1018Japan2025-06-12
1019Spain2025-05-25
1020India2025-06-11
1021France2025-05-26
1022Italy2025-05-24
1023Canada2025-06-12
1024Canada2025-05-22
1025Japan2025-05-22
1026Spain2025-06-13
1027Australia2025-06-17
1028Brazil2025-05-22
1029Argentina2025-05-20
1030France2025-05-25
1031Australia2025-06-16
1032India2025-06-09
1033Australia2025-06-13
1034United Kingdom2025-05-23
1035Argentina2025-05-31
1036Japan2025-06-14
1037Japan2025-05-22
1038Argentina2025-05-26
1039India2025-05-24
1040France2025-06-01
1041Australia2025-06-11
1042Argentina2025-06-05
1043Japan2025-06-08
1044Argentina2025-06-06
1045Spain2025-05-26
1046Canada2025-06-09
1047India2025-06-08
1048France2025-06-15
1049Russia2025-05-23

On-Demand Data

NameIdCountryDate
Faith G Chui1000Brazil2025-05-31
Mujtaba V Albares1001Spain2025-06-09
Kaitlin Q Royster1002France2025-05-22
Ivar Y Whobrey1003United Kingdom2025-06-11
Aruna S Chui1004Spain2025-05-30
Costa A Royster1005Russia2025-06-13
Murillo C Ruta1006France2025-05-27
Adams E Dilliard1007Italy2025-06-08
Stacey T Caldarera1008Germany2025-06-13
Maria Z Stockham1009Japan2025-06-06
Murillo C Maclead1010Germany2025-05-19
Jones L Maclead1011United Kingdom2025-05-22
Emily L Royster1012Italy2025-06-12
Salvatore N Dilliard1013Japan2025-06-15
Greenwood H Kusko1014France2025-05-22
Jeanfrancois D Caldarera1015France2025-06-05
Julie F Stockham1016Argentina2025-06-12
Faith D Butt1017Spain2025-06-14
Izzy D Nicka1018Russia2025-06-14
Johnson X Gillian1019France2025-05-25
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Munro L CaldareraBrazilIoni Bowcher NEW
Izzy B WaycottRussiaAsiya Javayant QUALIFIED
Cody J DoeSpainIoni Bowcher NEW
Greenwood C AmigonFranceElwin Sharvill RENEWAL
Jones M InouyeArgentinaStephen Shaw RENEWAL
Jefferson X IturbideRussiaIoni Bowcher NEW
Julie M ChuiCanadaElwin Sharvill RENEWAL
Kadeem R CaldareraIndiaOnyama Limba NEW
Octavia N AmigonAustraliaOnyama Limba UNQUALIFIED
Adams X OstroskyRussiaAmy Elsner UNQUALIFIED
Salvatore R FlosiUnited KingdomAnna Fali QUALIFIED
Izzy S StensethArgentinaBernardo Dominic UNQUALIFIED
Stacey R RimUnited KingdomBernardo Dominic NEW
Francesco G SaylorsAustraliaIvan Magalhaes QUALIFIED
Deepesh L NestleAustraliaBernardo Dominic NEGOTIATION
Kaitlin M SlusarskiGermanyAsiya Javayant RENEWAL
Adams U BriddickUnited KingdomAmy Elsner NEW
Johnson Q SlusarskiAustraliaOnyama Limba UNQUALIFIED
Alejandro X PerinJapanStephen Shaw NEGOTIATION
Aditya T PaprockiFranceIoni Bowcher NEGOTIATION
Tony Z DoeRussiaStephen Shaw NEGOTIATION
Johnson G SergiFranceOnyama Limba NEGOTIATION
Darci X PerinSpainIoni Bowcher NEGOTIATION
Smith E CaudyArgentinaElwin Sharvill NEGOTIATION
Emily H VenereSpainXuxue Feng RENEWAL
Jeanfrancois O KuskoGermanyAsiya Javayant NEW
Ashley Z GarufiGermanyAmy Elsner QUALIFIED
Costa K KolmetzUnited KingdomXuxue Feng RENEWAL
Cody T KuskoAustraliaAmy Elsner NEW
Salvatore U MaletFranceStephen Shaw RENEWAL
Silvio U GauchoFranceIvan Magalhaes RENEWAL
Clifford W ChuiRussiaAnna Fali UNQUALIFIED
Alejandro C BriddickUnited KingdomElwin Sharvill NEW
Wickens E FigeroaUnited KingdomIoni Bowcher RENEWAL
Jennifer G MaletGermanyIoni Bowcher RENEWAL
Leon R BologniaArgentinaAnna Fali RENEWAL
Chavez H FollerIndiaXuxue Feng UNQUALIFIED
Isabel M FerenczAustraliaOnyama Limba QUALIFIED
Julie C RoysterItalyAmy Elsner NEW
Greenwood Q StockhamItalyAsiya Javayant 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>