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
Emily K KuskoAustraliaBernardo Dominic NEGOTIATION
Isabel U RimCanadaIvan Magalhaes QUALIFIED
Octavia A SaylorsIndiaOnyama Limba RENEWAL
Antonio L InouyeUnited KingdomStephen Shaw RENEWAL
Juan H MacleadJapanBernardo Dominic NEW
Munro P RoysterAustraliaIvan Magalhaes UNQUALIFIED
Faith W WieserFranceAnna Fali QUALIFIED
Maisha P WhobreyFranceStephen Shaw UNQUALIFIED
David Y CaldareraUnited KingdomAnna Fali NEGOTIATION
Jennifer U FollerSpainIvan Magalhaes NEW
Deepesh Y NickaItalyStephen Shaw NEW
Munro K DarakjyUnited KingdomBernardo Dominic UNQUALIFIED
Nicolas A BriddickJapanStephen Shaw UNQUALIFIED
Morrow G MaletFranceOnyama Limba UNQUALIFIED
Clifford Q GlickSpainAsiya Javayant NEW
Wickens G ChuiRussiaAnna Fali UNQUALIFIED
Maisha U SaylorsJapanBernardo Dominic RENEWAL
Jeanfrancois N CaldareraBrazilBernardo Dominic PROPOSAL
Francesco B FerenczArgentinaIvan Magalhaes NEW
Misaki L PoquetteGermanyIvan Magalhaes NEGOTIATION
Jennifer C RulapaughBrazilIoni Bowcher NEW
Morrow W NestleRussiaStephen Shaw NEW
Jones K KolmetzJapanAmy Elsner PROPOSAL
Jones S MaletJapanAmy Elsner UNQUALIFIED
Chavez W CaldareraRussiaIoni Bowcher RENEWAL
Tony A PerinUnited KingdomOnyama Limba PROPOSAL
Kaitlin E NestleArgentinaIoni Bowcher UNQUALIFIED
Kaitlin U BriddickFranceAnna Fali NEW
Maria N KuskoAustraliaAnna Fali RENEWAL
Octavia X BriddickRussiaOnyama Limba QUALIFIED
Kadeem H AlbaresJapanXuxue Feng NEGOTIATION
Julie I WhobreyRussiaStephen Shaw UNQUALIFIED
Smith Z CampainSpainAnna Fali NEW
Chavez X RimRussiaBernardo Dominic QUALIFIED
Ricardo X NickaBrazilAsiya Javayant QUALIFIED
Deepesh G GarufiSpainAmy Elsner PROPOSAL
Maria S MorascaFranceXuxue Feng RENEWAL
Stacey J NestleRussiaElwin Sharvill NEW
Aika X GarufiBrazilElwin Sharvill PROPOSAL
Arvin G KuskoSpainXuxue Feng NEW
Clifford Z SaylorsCanadaElwin Sharvill QUALIFIED
Cody F BologniaFranceOnyama Limba PROPOSAL
Faith C GauchoArgentinaAsiya Javayant UNQUALIFIED
Salvatore D StockhamSpainAmy Elsner PROPOSAL
Mujtaba O TollnerIndiaElwin Sharvill QUALIFIED
Antonio K CaldareraIndiaIvan Magalhaes RENEWAL
Rodrigues A DilliardFranceBernardo Dominic NEW
Maria U NestleBrazilBernardo Dominic NEGOTIATION
Jennifer C AlbaresUnited KingdomXuxue Feng UNQUALIFIED
Juan C DilliardCanadaIvan Magalhaes PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Munro D FerenczIndiaOnyama Limba NEW
Mujtaba P FollerSpainStephen Shaw UNQUALIFIED
Alejandro K GarufiCanadaAmy Elsner NEGOTIATION
Maria Q CaldareraAustraliaXuxue Feng NEW
Juan E GauchoRussiaElwin Sharvill NEW
Octavia V MacleadAustraliaXuxue Feng RENEWAL
Jones D FlosiBrazilElwin Sharvill RENEWAL
Izzy W SaylorsFranceIvan Magalhaes PROPOSAL
Kaitlin D FollerArgentinaAsiya Javayant UNQUALIFIED
Wickens K RulapaughArgentinaIoni Bowcher NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Morrow M WieserAustralia2025-06-11Printing Dimensions RENEWAL9Xuxue Feng
1001Emily H GillianSpain2025-05-27Feltz Printing Service QUALIFIED26Amy Elsner
1002Clifford V MarrierCanada2025-06-07Rangoni Of Florence NEW41Anna Fali
1003Stacey O FigeroaArgentina2025-05-17Feiner Bros NEW91Onyama Limba
1004James T CaldareraAustralia2025-06-12King, Christopher A Esq PROPOSAL49Ivan Magalhaes
1005Julie V TollnerRussia2025-05-30Dorl, James J Esq NEW78Ivan Magalhaes
1006Munro S OldroydJapan2025-06-07Dorl, James J Esq RENEWAL39Elwin Sharvill
1007Silvio A RutaBrazil2025-06-14Rousseaux, Michael Esq RENEWAL85Ivan Magalhaes
1008Johnson X GarufiRussia2025-05-27Chapman, Ross E Esq RENEWAL4Stephen Shaw
1009Kaitlin P TollnerJapan2025-06-05Buckley Miller Wright NEW97Anna Fali
1010Isabel N RoysterFrance2025-05-27Chanay, Jeffrey A Esq NEGOTIATION14Stephen Shaw
1011Tony Q CampainArgentina2025-05-20Rangoni Of Florence NEGOTIATION53Anna Fali
1012Adams B FlosiItaly2025-05-18King, Christopher A Esq NEW89Stephen Shaw
1013Emily T MaletAustralia2025-05-30Rangoni Of Florence UNQUALIFIED80Onyama Limba
1014Faith L MarrierGermany2025-06-13Chanay, Jeffrey A Esq NEW91Ivan Magalhaes
1015Ivar J MaletAustralia2025-06-06Benton, John B Jr NEW87Bernardo Dominic
1016Mujtaba U MorascaGermany2025-05-24Chemel, James L Cpa RENEWAL92Ioni Bowcher
1017Emily E MorascaIndia2025-05-22Chapman, Ross E Esq PROPOSAL94Elwin Sharvill
1018Maisha A WaycottGermany2025-05-24Feltz Printing Service RENEWAL73Bernardo Dominic
1019Maisha M CaudyGermany2025-06-11King, Christopher A Esq NEGOTIATION24Onyama Limba
1020Francesco D IturbideCanada2025-05-18Feltz Printing Service RENEWAL16Onyama Limba
1021Jefferson O CaldareraFrance2025-06-06King, Christopher A Esq QUALIFIED67Bernardo Dominic
1022Jeanfrancois S GlickFrance2025-06-12Buckley Miller Wright QUALIFIED44Onyama Limba
1023Silvio T WaycottIndia2025-05-22Chemel, James L Cpa NEGOTIATION0Stephen Shaw
1024Stacey Y CaldareraArgentina2025-06-11Rousseaux, Michael Esq RENEWAL64Bernardo Dominic
1025Kadeem O DarakjyIndia2025-06-07Chapman, Ross E Esq UNQUALIFIED73Xuxue Feng
1026Morrow Q VocelkaIndia2025-05-27Chemel, James L Cpa PROPOSAL75Anna Fali
1027Ricardo S SaylorsBrazil2025-05-21Chemel, James L Cpa RENEWAL11Amy Elsner
1028Ivar F StockhamFrance2025-05-18Commercial Press NEGOTIATION89Ivan Magalhaes
1029Chavez H FlosiBrazil2025-05-29Printing Dimensions NEGOTIATION25Onyama Limba
1030Ivar E BowleyFrance2025-06-02Commercial Press NEW45Ioni Bowcher
1031Isabel X TollnerArgentina2025-06-04Feiner Bros PROPOSAL11Asiya Javayant
1032Stacey X RoysterJapan2025-05-29Printing Dimensions QUALIFIED27Xuxue Feng
1033Alejandro H VocelkaIndia2025-06-06Feltz Printing Service QUALIFIED69Bernardo Dominic
1034Aika E DilliardJapan2025-05-25Feiner Bros NEGOTIATION17Ioni Bowcher
1035Jones K PaprockiGermany2025-05-21Dorl, James J Esq PROPOSAL39Ioni Bowcher
1036Wickens O MacleadJapan2025-06-15Buckley Miller Wright RENEWAL44Asiya Javayant
1037Misaki U PoquetteGermany2025-05-18Benton, John B Jr RENEWAL68Anna Fali
1038Nicolas G AmigonUnited Kingdom2025-05-27Truhlar And Truhlar Attys RENEWAL99Onyama Limba
1039Smith P MorascaArgentina2025-05-23Dorl, James J Esq NEGOTIATION2Asiya Javayant
1040Deepesh N GlickArgentina2025-06-11Rousseaux, Michael Esq PROPOSAL77Ioni Bowcher
1041Munro G CaldareraAustralia2025-06-04Feiner Bros RENEWAL38Ioni Bowcher
1042Maisha G TollnerArgentina2025-06-12Feltz Printing Service QUALIFIED64Anna Fali
1043Mujtaba P MarrierBrazil2025-05-24Chemel, James L Cpa UNQUALIFIED90Onyama Limba
1044Darci X SchemmerUnited Kingdom2025-06-13Commercial Press PROPOSAL46Anna Fali
1045Smith J PerinRussia2025-05-17Chanay, Jeffrey A Esq PROPOSAL39Elwin Sharvill
1046Francesco G MaletFrance2025-06-06Truhlar And Truhlar Attys UNQUALIFIED67Bernardo Dominic
1047Alejandro D WieserBrazil2025-06-10Rangoni Of Florence NEW49Asiya Javayant
1048Aruna U FerenczUnited Kingdom2025-06-08Rangoni Of Florence UNQUALIFIED78Xuxue Feng
1049Leja E ChuiCanada2025-06-03Chemel, James L Cpa QUALIFIED67Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Murillo Y NestleGermanyOnyama Limba NEGOTIATION
Ricardo F RutaUnited KingdomIoni Bowcher NEGOTIATION
Sinclair H StensethUnited KingdomElwin Sharvill UNQUALIFIED
Jeanfrancois L SaylorsGermanyBernardo Dominic NEGOTIATION
Ivar T DarakjyJapanAsiya Javayant RENEWAL
Cody K GarufiBrazilStephen Shaw UNQUALIFIED
Costa F GauchoRussiaAnna Fali PROPOSAL
Mayumi V PerinAustraliaAsiya Javayant PROPOSAL
Alejandro Q FigeroaCanadaIoni Bowcher UNQUALIFIED
Adams H RoysterJapanIoni Bowcher QUALIFIED
Julie L FigeroaGermanyIvan Magalhaes RENEWAL
Julie L BowleyAustraliaAnna Fali NEW
Johnson E IturbideCanadaIoni Bowcher RENEWAL
Johnson T FigeroaItalyIoni Bowcher QUALIFIED
Stacey A SaylorsIndiaAsiya Javayant RENEWAL
Smith W MacleadRussiaXuxue Feng NEW
Aika V GlickSpainAmy Elsner NEW
Stacey U KolmetzGermanyAmy Elsner NEW
Emily F PaprockiAustraliaAsiya Javayant QUALIFIED
Leja F NestleRussiaIoni Bowcher UNQUALIFIED
Aditya C DoeGermanyIvan Magalhaes RENEWAL
Silvio R BologniaUnited KingdomOnyama Limba QUALIFIED
Ashley B BologniaSpainOnyama Limba UNQUALIFIED
Emily P DarakjyRussiaAnna Fali QUALIFIED
Ricardo Q TollnerSpainAsiya Javayant UNQUALIFIED
Leja A TollnerRussiaIoni Bowcher NEW
Murillo K IturbideAustraliaBernardo Dominic NEGOTIATION
Adams C CampainItalyXuxue Feng NEW
Octavia J WhobreyGermanyAnna Fali NEW
Claire S KolmetzBrazilBernardo Dominic QUALIFIED
Adams W MacleadGermanyXuxue Feng RENEWAL
Greenwood L VenereJapanOnyama Limba QUALIFIED
Smith Q FollerAustraliaXuxue Feng PROPOSAL
Silvio H TollnerItalyAmy Elsner NEGOTIATION
James P FlosiRussiaOnyama Limba UNQUALIFIED
Greenwood X OldroydJapanIoni Bowcher RENEWAL
Salvatore W GillianAustraliaIoni Bowcher UNQUALIFIED
Faith N SaylorsBrazilElwin Sharvill NEGOTIATION
Cody V GlickJapanBernardo Dominic RENEWAL
Maisha P SlusarskiUnited KingdomAmy Elsner UNQUALIFIED
Maisha H PaprockiIndiaAmy Elsner RENEWAL
Jeanfrancois L KuskoSpainIvan Magalhaes QUALIFIED
Mayumi F StockhamBrazilAsiya Javayant QUALIFIED
Smith I GauchoRussiaIvan Magalhaes QUALIFIED
Clifford G CaudyIndiaElwin Sharvill UNQUALIFIED
Jefferson W FollerFranceIoni Bowcher QUALIFIED
Silvio R MaletJapanOnyama Limba NEW
Izzy G AlbaresGermanyIoni Bowcher PROPOSAL
Darci A RimBrazilAnna Fali UNQUALIFIED
Aruna Y RutaRussiaBernardo Dominic UNQUALIFIED
Frozen Columns
Name
Antonio G Gillian
Darci T Briddick
Morrow B Campain
Clifford D Amigon
Aruna Y Morasca
Jeanfrancois T Paprocki
Rodrigues R Doe
Murillo Q Foller
Mujtaba A Royster
Tony A Flosi
Aditya O Tollner
Aika I Caldarera
Darci Y Glick
Mujtaba T Waycott
Cody Q Venere
Leon I Malet
Juan A Perin
Faith H Whobrey
Costa S Whobrey
Maria F Darakjy
Maisha L Albares
Jones S Saylors
Morrow R Morasca
Ricardo X Oldroyd
Juan E Nestle
Adams A Shinko
Mayumi V Stenseth
Leon B Saylors
Clifford S Iturbide
Octavia J Oldroyd
Juan Y Bowley
Antonio C Dilliard
Maria Y Schemmer
Morrow B Bolognia
Morrow Y Saylors
Nicolas U Perin
Arvin R Shinko
Jeanfrancois G Gaucho
David Z Rulapaugh
Nicolas A Figeroa
Octavia M Garufi
Cody G Morasca
James Y Rim
Salvatore S Flosi
Claire V Paprocki
David U Inouye
Arvin F Whobrey
Stacey Q Kolmetz
Salvatore Z Paprocki
Faith P Rim
IdCountryDate
1000Italy2025-06-07
1001Russia2025-05-31
1002Russia2025-06-08
1003Russia2025-05-31
1004Brazil2025-06-07
1005Spain2025-06-04
1006France2025-06-06
1007Germany2025-06-14
1008Brazil2025-06-05
1009United Kingdom2025-05-30
1010United Kingdom2025-05-27
1011Germany2025-05-30
1012Brazil2025-06-03
1013Italy2025-05-28
1014Japan2025-06-13
1015Australia2025-06-11
1016Canada2025-05-19
1017Australia2025-05-19
1018Russia2025-06-06
1019India2025-05-17
1020India2025-05-22
1021Australia2025-05-28
1022Australia2025-05-31
1023India2025-06-02
1024India2025-06-10
1025Japan2025-05-22
1026India2025-06-09
1027India2025-06-09
1028Japan2025-05-28
1029France2025-06-01
1030Italy2025-05-21
1031Italy2025-06-12
1032Russia2025-05-22
1033Canada2025-06-01
1034Spain2025-05-25
1035Australia2025-06-02
1036Germany2025-05-24
1037India2025-05-30
1038Argentina2025-06-02
1039Japan2025-06-11
1040United Kingdom2025-05-31
1041Spain2025-06-14
1042India2025-05-29
1043Russia2025-06-06
1044Russia2025-06-02
1045India2025-06-07
1046Argentina2025-06-12
1047United Kingdom2025-05-27
1048Australia2025-06-14
1049Brazil2025-05-17

On-Demand Data

NameIdCountryDate
James E Bolognia1000Japan2025-06-13
Nicolas V Malet1001Australia2025-06-01
Misaki Z Waycott1002Australia2025-06-07
Smith L Rim1003Italy2025-05-30
Munro A Shinko1004France2025-06-14
Jeanfrancois P Schemmer1005Spain2025-05-20
Isabel Y Nestle1006Brazil2025-05-26
Tony R Campain1007Australia2025-06-07
Wickens M Perin1008Brazil2025-05-29
Jefferson B Gillian1009Italy2025-06-05
Munro P Shinko1010Japan2025-05-22
Wickens A Malet1011India2025-05-18
Costa O Doe1012Argentina2025-06-15
Aditya A Wieser1013Spain2025-05-19
Arvin A Whobrey1014Japan2025-05-29
Julie M Iturbide1015Germany2025-05-28
Isabel W Rim1016Japan2025-05-26
Leon V Stenseth1017France2025-06-13
Izzy U Amigon1018Spain2025-06-10
Nicolas A Kusko1019Russia2025-06-13
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Julie I PerinIndiaAmy Elsner NEW
Emily D MarrierJapanXuxue Feng NEW
Aika J KuskoJapanIoni Bowcher NEW
Ivar Z ShinkoUnited KingdomIvan Magalhaes QUALIFIED
Clifford L NickaSpainAmy Elsner NEGOTIATION
Chavez C KolmetzRussiaIvan Magalhaes UNQUALIFIED
Aruna J VocelkaArgentinaBernardo Dominic UNQUALIFIED
Smith N SaylorsCanadaIoni Bowcher PROPOSAL
Silvio C ChuiArgentinaIvan Magalhaes UNQUALIFIED
Munro Q DarakjyCanadaAmy Elsner UNQUALIFIED
Julie A AlbaresArgentinaOnyama Limba UNQUALIFIED
Tony I FollerArgentinaAsiya Javayant PROPOSAL
Misaki C WaycottUnited KingdomAmy Elsner RENEWAL
Adams G GlickCanadaAsiya Javayant QUALIFIED
Octavia F MaletSpainAsiya Javayant PROPOSAL
Ashley L GauchoUnited KingdomElwin Sharvill QUALIFIED
Izzy K SergiJapanAnna Fali NEW
Silvio N VocelkaRussiaOnyama Limba UNQUALIFIED
Salvatore W PerinBrazilElwin Sharvill RENEWAL
Ricardo W NestleItalyAnna Fali NEGOTIATION
Kaitlin X KuskoFranceIoni Bowcher RENEWAL
Morrow J ShinkoBrazilAsiya Javayant PROPOSAL
Rodrigues C CaudyCanadaAmy Elsner RENEWAL
Mujtaba R FollerIndiaIoni Bowcher QUALIFIED
Maisha A TollnerSpainOnyama Limba RENEWAL
Rodrigues P CaudyFranceOnyama Limba QUALIFIED
Tony P RulapaughCanadaXuxue Feng UNQUALIFIED
Jefferson H ButtJapanElwin Sharvill RENEWAL
Kaitlin E StensethRussiaIoni Bowcher PROPOSAL
Munro K OstroskyCanadaAsiya Javayant RENEWAL
Jones E GauchoGermanyOnyama Limba UNQUALIFIED
Emily Q PoquetteFranceAsiya Javayant PROPOSAL
Francesco M KolmetzAustraliaBernardo Dominic QUALIFIED
Costa T GlickArgentinaStephen Shaw QUALIFIED
Juan D GlickIndiaStephen Shaw NEW
Arvin K ButtJapanElwin Sharvill RENEWAL
Jeanfrancois K CaudyBrazilAmy Elsner NEGOTIATION
James Y SlusarskiArgentinaIoni Bowcher RENEWAL
Jennifer E PaprockiUnited KingdomIoni Bowcher QUALIFIED
Alejandro C AmigonCanadaBernardo 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>