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
Octavia H BriddickItalyIvan Magalhaes UNQUALIFIED
Julie H KuskoItalyBernardo Dominic PROPOSAL
Sinclair T SchemmerCanadaIvan Magalhaes RENEWAL
Mujtaba J GillianBrazilOnyama Limba UNQUALIFIED
Johnson N GlickItalyAmy Elsner UNQUALIFIED
Murillo H RutaItalyXuxue Feng NEW
Ricardo Y CaudyCanadaStephen Shaw RENEWAL
Salvatore T KolmetzFranceElwin Sharvill NEW
Darci I MaletJapanBernardo Dominic RENEWAL
Emily Z FigeroaIndiaAmy Elsner RENEWAL
Darci V DilliardBrazilElwin Sharvill QUALIFIED
Darci X CampainArgentinaElwin Sharvill NEW
Octavia N GillianArgentinaBernardo Dominic QUALIFIED
Wickens F GauchoUnited KingdomAnna Fali NEW
Clifford D SergiSpainOnyama Limba NEW
Julie U MaletFranceAsiya Javayant NEGOTIATION
Darci R BologniaAustraliaAmy Elsner PROPOSAL
David O MaletItalyIoni Bowcher NEW
Deepesh C MacleadBrazilIvan Magalhaes NEGOTIATION
Wickens H DoeBrazilIvan Magalhaes QUALIFIED
Juan A ButtFranceOnyama Limba RENEWAL
Munro E GlickGermanyStephen Shaw PROPOSAL
David J RoysterJapanIoni Bowcher UNQUALIFIED
Adams Y InouyeIndiaXuxue Feng NEW
Sinclair O VenereGermanyAnna Fali UNQUALIFIED
Leon E MaletAustraliaAmy Elsner PROPOSAL
Stacey W VocelkaItalyOnyama Limba UNQUALIFIED
Ivar N GlickSpainIvan Magalhaes RENEWAL
Ricardo B VocelkaBrazilAmy Elsner RENEWAL
Julie E MacleadJapanAsiya Javayant QUALIFIED
Greenwood A WhobreyUnited KingdomIvan Magalhaes PROPOSAL
Claire O SaylorsFranceAmy Elsner NEGOTIATION
Ashley Z VenereBrazilXuxue Feng NEGOTIATION
Smith Z NickaRussiaIvan Magalhaes QUALIFIED
Alejandro P NestleSpainBernardo Dominic PROPOSAL
Julie F SchemmerBrazilBernardo Dominic NEW
Ricardo H CaudyGermanyOnyama Limba NEGOTIATION
Silvio H FerenczBrazilAmy Elsner UNQUALIFIED
Greenwood T StockhamArgentinaAnna Fali QUALIFIED
Ivar X ShinkoSpainElwin Sharvill RENEWAL
Antonio O BriddickArgentinaBernardo Dominic RENEWAL
Adams A MaletSpainAnna Fali NEW
Tony A OldroydBrazilStephen Shaw RENEWAL
Mujtaba Y RulapaughIndiaElwin Sharvill NEW
Leon I CaldareraRussiaIoni Bowcher QUALIFIED
Clifford I MorascaCanadaAmy Elsner UNQUALIFIED
Faith P NestleCanadaOnyama Limba QUALIFIED
Antonio D OldroydCanadaAmy Elsner UNQUALIFIED
Mayumi O FlosiJapanIoni Bowcher NEGOTIATION
Morrow F InouyeSpainIvan Magalhaes QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Aruna I OstroskyFranceAsiya Javayant QUALIFIED
Arvin Q OldroydArgentinaOnyama Limba RENEWAL
Chavez I ChuiUnited KingdomAnna Fali QUALIFIED
Kaitlin B WhobreyFranceAsiya Javayant PROPOSAL
Nicolas Q FerenczAustraliaStephen Shaw NEGOTIATION
Smith D DarakjyAustraliaElwin Sharvill PROPOSAL
Leja Z RutaSpainOnyama Limba NEW
Cody U SchemmerSpainAsiya Javayant NEGOTIATION
Isabel B MacleadRussiaElwin Sharvill RENEWAL
Ricardo V GarufiJapanAmy Elsner UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Maria L WaycottItaly2026-08-19Chemel, James L Cpa PROPOSAL51Xuxue Feng
1001Jefferson O RoysterCanada2026-08-12Feltz Printing Service NEW98Elwin Sharvill
1002Emily D InouyeJapan2026-08-24Benton, John B Jr NEW0Stephen Shaw
1003Antonio C MaletRussia2026-08-11Morlong Associates PROPOSAL7Ivan Magalhaes
1004Chavez T AlbaresJapan2026-09-02Printing Dimensions NEGOTIATION69Amy Elsner
1005Misaki L RoysterCanada2026-08-28Chapman, Ross E Esq NEW2Onyama Limba
1006James J VenereFrance2026-08-17Feiner Bros UNQUALIFIED85Stephen Shaw
1007Costa R IturbideCanada2026-08-14Dorl, James J Esq NEW77Elwin Sharvill
1008Claire W DoeArgentina2026-08-04Truhlar And Truhlar Attys RENEWAL34Ioni Bowcher
1009Aditya Y CaldareraItaly2026-08-31Rousseaux, Michael Esq UNQUALIFIED13Xuxue Feng
1010Emily M ShinkoItaly2026-08-04Buckley Miller Wright NEGOTIATION33Onyama Limba
1011Salvatore B CampainUnited Kingdom2026-08-21Morlong Associates RENEWAL50Stephen Shaw
1012Greenwood D DoeAustralia2026-08-21Feiner Bros NEGOTIATION63Stephen Shaw
1013Octavia B MaletGermany2026-09-02Commercial Press PROPOSAL36Ioni Bowcher
1014Jefferson Q MorascaArgentina2026-08-11Rangoni Of Florence QUALIFIED65Ivan Magalhaes
1015Deepesh T PerinJapan2026-08-19Printing Dimensions UNQUALIFIED39Bernardo Dominic
1016Munro P SchemmerSpain2026-08-17Buckley Miller Wright UNQUALIFIED73Onyama Limba
1017Mayumi X BologniaAustralia2026-08-10Chapman, Ross E Esq NEW47Bernardo Dominic
1018Costa B CaudyAustralia2026-08-26Benton, John B Jr NEGOTIATION34Ivan Magalhaes
1019Maisha V RimGermany2026-09-02Feltz Printing Service RENEWAL43Anna Fali
1020Deepesh U SlusarskiUnited Kingdom2026-08-21Truhlar And Truhlar Attys NEW67Stephen Shaw
1021Juan J StensethIndia2026-08-24Buckley Miller Wright NEGOTIATION0Elwin Sharvill
1022Isabel G MaletIndia2026-08-21Feltz Printing Service NEGOTIATION81Ivan Magalhaes
1023Misaki C MarrierGermany2026-08-12Rousseaux, Michael Esq QUALIFIED66Amy Elsner
1024Silvio X VenereSpain2026-08-19Rousseaux, Michael Esq UNQUALIFIED85Anna Fali
1025Mujtaba O PaprockiIndia2026-08-14Buckley Miller Wright PROPOSAL14Bernardo Dominic
1026Silvio E GarufiBrazil2026-08-25Dorl, James J Esq NEGOTIATION95Ivan Magalhaes
1027Wickens R InouyeArgentina2026-08-29Benton, John B Jr NEW48Stephen Shaw
1028Wickens G BologniaIndia2026-08-26Truhlar And Truhlar Attys NEGOTIATION75Amy Elsner
1029Stacey G CaudyIndia2026-08-30Morlong Associates RENEWAL66Ioni Bowcher
1030Juan D MorascaItaly2026-08-16Feiner Bros NEW86Xuxue Feng
1031Wickens R RoysterItaly2026-08-24Chanay, Jeffrey A Esq QUALIFIED38Ioni Bowcher
1032Aditya K DilliardFrance2026-09-01Chapman, Ross E Esq NEGOTIATION20Ivan Magalhaes
1033Stacey F KuskoArgentina2026-08-12Commercial Press NEW85Asiya Javayant
1034Aruna B MaletIndia2026-08-17Feltz Printing Service QUALIFIED16Ivan Magalhaes
1035Wickens F NickaGermany2026-08-10Buckley Miller Wright QUALIFIED92Amy Elsner
1036Darci Z BologniaCanada2026-08-20Feiner Bros QUALIFIED15Bernardo Dominic
1037Juan Y StensethIndia2026-08-27Buckley Miller Wright NEW84Amy Elsner
1038Juan Q CaudyUnited Kingdom2026-08-15Commercial Press NEGOTIATION96Ioni Bowcher
1039Cody V FerenczFrance2026-08-28Printing Dimensions NEGOTIATION80Bernardo Dominic
1040Ricardo A RoysterBrazil2026-08-15Morlong Associates PROPOSAL17Asiya Javayant
1041Isabel M RutaIndia2026-08-21Feiner Bros UNQUALIFIED45Ioni Bowcher
1042Jones D KuskoRussia2026-08-25Truhlar And Truhlar Attys NEW55Stephen Shaw
1043James F OldroydIndia2026-08-04Dorl, James J Esq PROPOSAL56Ioni Bowcher
1044Darci O CaldareraArgentina2026-08-09Buckley Miller Wright RENEWAL25Xuxue Feng
1045Smith I FigeroaSpain2026-08-26Rangoni Of Florence UNQUALIFIED4Amy Elsner
1046Jones R DilliardSpain2026-08-12Buckley Miller Wright PROPOSAL36Amy Elsner
1047Octavia J PaprockiSpain2026-08-22Printing Dimensions PROPOSAL73Elwin Sharvill
1048Misaki S GauchoGermany2026-08-13Rangoni Of Florence UNQUALIFIED42Ioni Bowcher
1049Smith V CaudyArgentina2026-08-21Chemel, James L Cpa QUALIFIED93Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
David X RulapaughItalyOnyama Limba NEGOTIATION
Aditya A PoquetteBrazilXuxue Feng NEGOTIATION
Julie S RutaIndiaAsiya Javayant UNQUALIFIED
Johnson X BologniaIndiaXuxue Feng RENEWAL
Juan F GillianGermanyAnna Fali UNQUALIFIED
Maisha U DilliardGermanyStephen Shaw NEGOTIATION
Stacey T MarrierBrazilBernardo Dominic UNQUALIFIED
Kadeem O FigeroaCanadaOnyama Limba QUALIFIED
Maisha Q FlosiUnited KingdomIoni Bowcher NEGOTIATION
Maria N MaletArgentinaStephen Shaw NEW
Johnson Q GauchoAustraliaIoni Bowcher QUALIFIED
David K VenereCanadaXuxue Feng PROPOSAL
Maria S MacleadIndiaIvan Magalhaes PROPOSAL
Aika N MaletFranceBernardo Dominic UNQUALIFIED
Aditya O CaudyRussiaXuxue Feng PROPOSAL
James N CaldareraArgentinaOnyama Limba NEW
Kaitlin Q OstroskyGermanyIvan Magalhaes NEW
Stacey E PerinAustraliaStephen Shaw NEW
Sinclair M AlbaresAustraliaBernardo Dominic PROPOSAL
Aditya Y AlbaresBrazilAnna Fali UNQUALIFIED
Kadeem S OstroskyBrazilBernardo Dominic PROPOSAL
Juan M WieserIndiaAsiya Javayant UNQUALIFIED
Izzy L NickaCanadaAmy Elsner QUALIFIED
Maria B MacleadItalyIvan Magalhaes UNQUALIFIED
Sinclair L GillianCanadaElwin Sharvill UNQUALIFIED
James R AmigonAustraliaAmy Elsner NEW
Leja M AmigonArgentinaAsiya Javayant PROPOSAL
Juan S RoysterBrazilIoni Bowcher NEGOTIATION
Arvin U ChuiArgentinaBernardo Dominic NEW
Adams X SlusarskiSpainAmy Elsner UNQUALIFIED
Murillo X PaprockiUnited KingdomStephen Shaw UNQUALIFIED
Ashley Y MarrierBrazilAmy Elsner NEW
Emily I WhobreyArgentinaAsiya Javayant RENEWAL
Greenwood F KolmetzSpainOnyama Limba PROPOSAL
Maisha N StensethSpainOnyama Limba NEGOTIATION
Rodrigues G PerinCanadaStephen Shaw PROPOSAL
Cody R RulapaughItalyElwin Sharvill PROPOSAL
Munro G OldroydUnited KingdomAmy Elsner NEW
Morrow J SergiBrazilAnna Fali NEW
Emily L AmigonFranceBernardo Dominic PROPOSAL
Arvin F WieserArgentinaOnyama Limba UNQUALIFIED
Tony U FollerItalyOnyama Limba QUALIFIED
James B RulapaughCanadaAnna Fali PROPOSAL
Jennifer G GlickJapanBernardo Dominic NEGOTIATION
Deepesh A RoysterBrazilXuxue Feng UNQUALIFIED
Jennifer P RimRussiaXuxue Feng NEGOTIATION
Chavez N CampainJapanBernardo Dominic PROPOSAL
Stacey C GillianAustraliaBernardo Dominic PROPOSAL
Leon E TollnerCanadaElwin Sharvill NEGOTIATION
Jones F RulapaughFranceAmy Elsner UNQUALIFIED
Frozen Columns
Name
Mujtaba O Dilliard
Nicolas D Rim
Leon Z Ferencz
Isabel O Nicka
Costa C Tollner
Wickens I Vocelka
Jennifer T Flosi
Tony D Schemmer
Izzy Y Shinko
Cody O Bolognia
Emily G Butt
Aruna C Glick
Alejandro B Caudy
Smith Q Darakjy
Jefferson W Nestle
Ivar H Gillian
Mayumi D Flosi
Morrow C Bowley
Alejandro J Vocelka
Smith D Butt
Munro S Flosi
Francesco F Vocelka
Darci P Whobrey
Greenwood U Royster
Arvin G Amigon
Claire Z Kolmetz
Johnson Z Poquette
Faith Q Dilliard
Costa M Briddick
Juan H Bowley
Salvatore Q Perin
Adams Z Oldroyd
Leja F Morasca
James B Doe
Jennifer W Stockham
James F Figeroa
Jefferson N Rim
Maria U Figeroa
Darci X Shinko
Leon P Poquette
Munro A Bowley
Leja B Malet
Greenwood D Doe
Johnson L Inouye
Ashley V Poquette
Aika M Caldarera
Kadeem U Kusko
Morrow H Malet
Smith B Malet
Ashley N Ruta
IdCountryDate
1000Russia2026-09-01
1001United Kingdom2026-08-25
1002Canada2026-08-12
1003Germany2026-08-09
1004Spain2026-08-25
1005Spain2026-08-17
1006India2026-08-26
1007Japan2026-08-29
1008Japan2026-08-10
1009Japan2026-08-21
1010United Kingdom2026-08-27
1011Japan2026-08-29
1012Japan2026-08-08
1013United Kingdom2026-08-31
1014Brazil2026-08-16
1015Italy2026-08-05
1016Japan2026-08-29
1017Russia2026-08-11
1018Russia2026-08-08
1019Argentina2026-08-20
1020India2026-08-20
1021Argentina2026-09-01
1022Brazil2026-08-27
1023Russia2026-08-08
1024Canada2026-08-12
1025Argentina2026-08-24
1026Russia2026-08-05
1027Australia2026-08-23
1028Spain2026-08-08
1029Japan2026-08-26
1030United Kingdom2026-08-18
1031Canada2026-09-01
1032Germany2026-08-10
1033United Kingdom2026-08-04
1034Germany2026-08-06
1035Canada2026-08-08
1036Japan2026-08-20
1037Japan2026-08-22
1038Italy2026-08-13
1039Russia2026-08-12
1040United Kingdom2026-09-02
1041Australia2026-08-17
1042Germany2026-08-15
1043Australia2026-09-01
1044Russia2026-08-05
1045Canada2026-08-08
1046Russia2026-08-26
1047India2026-08-06
1048Japan2026-08-14
1049Germany2026-08-05

On-Demand Data

NameIdCountryDate
Arvin S Garufi1000France2026-08-20
Maisha U Campain1001Canada2026-08-14
Francesco A Inouye1002United Kingdom2026-08-13
Rodrigues Y Doe1003Canada2026-08-29
Costa M Figeroa1004Brazil2026-08-15
Ashley D Briddick1005Russia2026-09-02
Chavez O Nestle1006India2026-08-05
Juan C Schemmer1007Russia2026-08-29
Deepesh J Schemmer1008India2026-08-24
Jennifer H Oldroyd1009Australia2026-08-15
Jefferson F Kolmetz1010Canada2026-08-26
Greenwood T Rim1011Russia2026-08-06
Julie W Bowley1012United Kingdom2026-08-09
Deepesh S Albares1013Germany2026-08-05
Leon O Doe1014Australia2026-08-19
Alejandro E Butt1015Argentina2026-08-15
Johnson L Royster1016France2026-08-22
Silvio N Chui1017Russia2026-08-15
Aditya A Shinko1018Italy2026-08-31
Maisha V Garufi1019United Kingdom2026-08-09
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Clifford Q DilliardJapanBernardo Dominic RENEWAL
Clifford I WhobreyJapanIoni Bowcher NEW
Jennifer C MacleadRussiaOnyama Limba PROPOSAL
Maria X AlbaresJapanAsiya Javayant UNQUALIFIED
Aditya Q AmigonCanadaXuxue Feng QUALIFIED
Murillo C TollnerFranceBernardo Dominic QUALIFIED
Rodrigues G FollerBrazilIoni Bowcher NEGOTIATION
Mayumi V BowleySpainIoni Bowcher NEGOTIATION
Maria E MaletRussiaIoni Bowcher PROPOSAL
Sinclair X SlusarskiIndiaIoni Bowcher NEW
Wickens F BowleyIndiaStephen Shaw RENEWAL
Jeanfrancois J PoquetteFranceIvan Magalhaes UNQUALIFIED
Sinclair V CampainArgentinaElwin Sharvill UNQUALIFIED
Aika Y GlickAustraliaStephen Shaw NEW
Faith P RimUnited KingdomXuxue Feng NEGOTIATION
Chavez Z SlusarskiUnited KingdomIvan Magalhaes UNQUALIFIED
Ricardo K RoysterFranceBernardo Dominic NEGOTIATION
Maria E WieserIndiaElwin Sharvill NEW
Mujtaba Y MorascaArgentinaElwin Sharvill UNQUALIFIED
Ivar T KuskoRussiaStephen Shaw QUALIFIED
Costa L MacleadJapanOnyama Limba RENEWAL
Aruna R TollnerAustraliaAmy Elsner NEGOTIATION
Aika F CampainRussiaXuxue Feng PROPOSAL
Darci Z StockhamIndiaXuxue Feng NEW
Mayumi H DoeUnited KingdomOnyama Limba NEGOTIATION
Ashley B CaldareraRussiaAsiya Javayant NEW
Silvio D GlickJapanXuxue Feng RENEWAL
Stacey H MacleadIndiaAnna Fali NEGOTIATION
Kadeem V SchemmerItalyIoni Bowcher PROPOSAL
Emily D OldroydItalyBernardo Dominic RENEWAL
Emily F OldroydUnited KingdomOnyama Limba NEW
Clifford F DoeBrazilAsiya Javayant UNQUALIFIED
Leja I WhobreyBrazilOnyama Limba NEW
Aditya S GauchoUnited KingdomIoni Bowcher NEW
Rodrigues V MaletGermanyAmy Elsner NEGOTIATION
Tony P NestleFranceElwin Sharvill NEGOTIATION
Stacey B WieserItalyBernardo Dominic QUALIFIED
Francesco U OstroskyAustraliaStephen Shaw QUALIFIED
Emily R GlickItalyAsiya Javayant UNQUALIFIED
Alejandro K RoysterGermanyXuxue Feng PROPOSAL

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