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
Aruna O KolmetzArgentinaIvan Magalhaes NEGOTIATION
Sinclair V VenereCanadaOnyama Limba QUALIFIED
Jones C WieserUnited KingdomStephen Shaw QUALIFIED
Stacey X SergiAustraliaOnyama Limba RENEWAL
Darci Z PerinIndiaStephen Shaw RENEWAL
Rodrigues S FlosiSpainAmy Elsner UNQUALIFIED
David I ShinkoFranceAnna Fali RENEWAL
Ashley E DoeBrazilOnyama Limba PROPOSAL
Nicolas O KuskoSpainOnyama Limba UNQUALIFIED
Silvio Y PerinArgentinaXuxue Feng PROPOSAL
Leon E RoysterFranceAsiya Javayant NEGOTIATION
Mujtaba H FlosiBrazilIvan Magalhaes RENEWAL
Greenwood E ChuiSpainIoni Bowcher NEGOTIATION
Octavia M InouyeGermanyElwin Sharvill RENEWAL
Munro T MaletBrazilXuxue Feng PROPOSAL
David Z PaprockiSpainElwin Sharvill RENEWAL
Leja K CaudyCanadaIoni Bowcher QUALIFIED
Sinclair P WieserIndiaIoni Bowcher NEGOTIATION
Francesco U IturbideAustraliaIoni Bowcher PROPOSAL
Mujtaba W DoeRussiaOnyama Limba PROPOSAL
Julie Y RoysterCanadaElwin Sharvill UNQUALIFIED
Aika X ShinkoArgentinaIvan Magalhaes RENEWAL
Mujtaba Q NickaItalyBernardo Dominic RENEWAL
Ricardo M VenereArgentinaElwin Sharvill RENEWAL
Francesco M KolmetzSpainIvan Magalhaes RENEWAL
Munro K MorascaSpainOnyama Limba NEW
James F MacleadRussiaAnna Fali RENEWAL
Ivar V IturbideUnited KingdomAmy Elsner RENEWAL
Cody P KolmetzGermanyXuxue Feng NEW
Juan T ShinkoItalyBernardo Dominic RENEWAL
Jones T RimUnited KingdomXuxue Feng RENEWAL
Nicolas D CaudyUnited KingdomBernardo Dominic NEW
Leja I RulapaughFranceIvan Magalhaes UNQUALIFIED
Ivar K FerenczBrazilXuxue Feng PROPOSAL
Antonio B StensethFranceBernardo Dominic QUALIFIED
Claire V SergiSpainElwin Sharvill PROPOSAL
Maisha Y KolmetzIndiaAmy Elsner UNQUALIFIED
Maria W RutaUnited KingdomAsiya Javayant RENEWAL
Darci C RimBrazilIoni Bowcher NEGOTIATION
Johnson E PerinArgentinaIvan Magalhaes NEGOTIATION
Julie H ChuiAustraliaOnyama Limba NEW
Ricardo U FollerItalyXuxue Feng RENEWAL
Greenwood F TollnerItalyAmy Elsner NEGOTIATION
Kadeem P DoeUnited KingdomStephen Shaw PROPOSAL
Francesco B RutaSpainAnna Fali PROPOSAL
Darci J MacleadJapanIvan Magalhaes NEW
Emily V MorascaCanadaIoni Bowcher UNQUALIFIED
Johnson T TollnerIndiaIvan Magalhaes QUALIFIED
Stacey D KolmetzSpainAsiya Javayant QUALIFIED
Claire S SergiBrazilStephen Shaw UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Alejandro G GarufiUnited KingdomXuxue Feng UNQUALIFIED
Salvatore R ChuiIndiaElwin Sharvill UNQUALIFIED
Munro Y FollerBrazilIoni Bowcher UNQUALIFIED
Nicolas G NickaFranceIoni Bowcher QUALIFIED
Wickens I TollnerSpainIvan Magalhaes QUALIFIED
Arvin T ChuiGermanyXuxue Feng NEW
Octavia S TollnerJapanOnyama Limba RENEWAL
Francesco O BriddickSpainAmy Elsner QUALIFIED
Chavez T NickaIndiaIvan Magalhaes NEGOTIATION
Juan P DilliardGermanyIoni Bowcher UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jones S KuskoGermany2025-05-23Rangoni Of Florence UNQUALIFIED71Onyama Limba
1001Aruna N NestleRussia2025-06-07Rangoni Of Florence PROPOSAL18Ivan Magalhaes
1002Aditya W MaletAustralia2025-06-13Rangoni Of Florence UNQUALIFIED34Asiya Javayant
1003Leon G ShinkoGermany2025-05-27Feiner Bros RENEWAL56Stephen Shaw
1004Aika X GlickJapan2025-06-09King, Christopher A Esq QUALIFIED94Bernardo Dominic
1005Salvatore V MaletGermany2025-06-06Benton, John B Jr NEGOTIATION31Anna Fali
1006Jefferson L WaycottFrance2025-06-09Chanay, Jeffrey A Esq QUALIFIED63Asiya Javayant
1007Johnson H NickaBrazil2025-06-08King, Christopher A Esq NEW6Ivan Magalhaes
1008Salvatore K MarrierItaly2025-05-24Benton, John B Jr QUALIFIED57Anna Fali
1009Morrow X KuskoItaly2025-05-31Buckley Miller Wright UNQUALIFIED28Asiya Javayant
1010Rodrigues X CaudySpain2025-06-16Dorl, James J Esq RENEWAL54Asiya Javayant
1011Jones Z FigeroaRussia2025-05-25Printing Dimensions RENEWAL18Asiya Javayant
1012Jefferson D PaprockiGermany2025-05-24Feltz Printing Service RENEWAL52Bernardo Dominic
1013Sinclair Q DoeIndia2025-05-31Feltz Printing Service NEGOTIATION10Bernardo Dominic
1014Murillo L InouyeGermany2025-05-25Chanay, Jeffrey A Esq NEGOTIATION9Onyama Limba
1015Ivar S RutaIndia2025-06-13Rangoni Of Florence PROPOSAL16Xuxue Feng
1016Sinclair R MorascaBrazil2025-06-08Chapman, Ross E Esq QUALIFIED9Onyama Limba
1017Octavia O IturbideRussia2025-06-07Feltz Printing Service QUALIFIED36Ioni Bowcher
1018Silvio D VenereItaly2025-06-13Rangoni Of Florence UNQUALIFIED70Elwin Sharvill
1019Greenwood G SchemmerRussia2025-06-08Chemel, James L Cpa PROPOSAL61Anna Fali
1020Ashley R FerenczUnited Kingdom2025-05-22Printing Dimensions RENEWAL78Ioni Bowcher
1021Darci D FlosiIndia2025-06-14Printing Dimensions NEGOTIATION50Ioni Bowcher
1022Morrow B SlusarskiBrazil2025-06-15Chemel, James L Cpa QUALIFIED52Onyama Limba
1023Francesco U AmigonCanada2025-06-12Benton, John B Jr NEGOTIATION50Elwin Sharvill
1024Kadeem N MorascaBrazil2025-05-31Chapman, Ross E Esq QUALIFIED59Stephen Shaw
1025David X SergiJapan2025-06-09Printing Dimensions QUALIFIED15Stephen Shaw
1026Chavez K PoquetteAustralia2025-05-23Morlong Associates NEW32Onyama Limba
1027Antonio N SchemmerIndia2025-06-04Chanay, Jeffrey A Esq NEGOTIATION20Asiya Javayant
1028Aruna F WieserAustralia2025-06-01Chanay, Jeffrey A Esq PROPOSAL88Onyama Limba
1029Julie U OldroydBrazil2025-06-12King, Christopher A Esq PROPOSAL7Anna Fali
1030Sinclair S GarufiUnited Kingdom2025-06-13Feiner Bros RENEWAL35Anna Fali
1031Francesco Z BriddickUnited Kingdom2025-05-21Feiner Bros QUALIFIED42Stephen Shaw
1032Rodrigues W NestleIndia2025-06-05Commercial Press UNQUALIFIED41Onyama Limba
1033Murillo C MaletBrazil2025-05-25Chanay, Jeffrey A Esq PROPOSAL58Xuxue Feng
1034Aika G FlosiCanada2025-06-03Chemel, James L Cpa UNQUALIFIED41Bernardo Dominic
1035Munro M CaudySpain2025-06-09King, Christopher A Esq QUALIFIED61Asiya Javayant
1036Darci J FlosiBrazil2025-06-11Feiner Bros NEGOTIATION40Ioni Bowcher
1037Sinclair P BologniaArgentina2025-06-06Morlong Associates PROPOSAL13Amy Elsner
1038Johnson T ShinkoAustralia2025-06-08Feltz Printing Service UNQUALIFIED92Bernardo Dominic
1039Misaki R NestleCanada2025-05-31Chapman, Ross E Esq PROPOSAL86Asiya Javayant
1040Johnson J IturbideUnited Kingdom2025-06-07Feltz Printing Service RENEWAL72Ioni Bowcher
1041Darci C SlusarskiFrance2025-06-04Chanay, Jeffrey A Esq PROPOSAL98Onyama Limba
1042Murillo L GauchoUnited Kingdom2025-05-30Chemel, James L Cpa RENEWAL60Ivan Magalhaes
1043Izzy E FollerBrazil2025-06-03Chapman, Ross E Esq NEW65Stephen Shaw
1044Deepesh L OstroskyUnited Kingdom2025-06-01Chapman, Ross E Esq QUALIFIED59Amy Elsner
1045Rodrigues W VocelkaAustralia2025-06-03Dorl, James J Esq NEW82Ioni Bowcher
1046Ivar I PoquetteAustralia2025-05-21Chanay, Jeffrey A Esq NEGOTIATION16Xuxue Feng
1047Arvin N PerinItaly2025-05-29Commercial Press NEGOTIATION48Asiya Javayant
1048Greenwood C GlickIndia2025-06-02Chapman, Ross E Esq UNQUALIFIED25Asiya Javayant
1049Clifford W CaldareraRussia2025-05-23Commercial Press NEGOTIATION38Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Tony A CaudyRussiaIvan Magalhaes UNQUALIFIED
Murillo Q RulapaughBrazilBernardo Dominic QUALIFIED
Rodrigues Z NestleAustraliaOnyama Limba UNQUALIFIED
Johnson Y RutaSpainElwin Sharvill QUALIFIED
James A InouyeArgentinaOnyama Limba QUALIFIED
Kaitlin A OldroydArgentinaIoni Bowcher UNQUALIFIED
Ricardo M VenereIndiaElwin Sharvill QUALIFIED
Ivar C BriddickIndiaAsiya Javayant QUALIFIED
Francesco O StockhamIndiaOnyama Limba PROPOSAL
Wickens T DoeFranceAnna Fali NEGOTIATION
Aruna J SlusarskiItalyIoni Bowcher UNQUALIFIED
Juan F BologniaAustraliaAmy Elsner PROPOSAL
Deepesh G GarufiAustraliaAsiya Javayant PROPOSAL
Jennifer S KuskoItalyElwin Sharvill NEW
Emily E KuskoAustraliaAsiya Javayant NEGOTIATION
Leon L GauchoIndiaBernardo Dominic RENEWAL
Izzy P AlbaresAustraliaAsiya Javayant QUALIFIED
Chavez M KolmetzUnited KingdomIoni Bowcher QUALIFIED
Clifford J MorascaFranceXuxue Feng QUALIFIED
Francesco F ChuiCanadaAmy Elsner UNQUALIFIED
Izzy P MaletFranceOnyama Limba NEW
Cody Z MarrierArgentinaElwin Sharvill RENEWAL
Salvatore N OstroskyAustraliaAnna Fali PROPOSAL
Jefferson R WhobreyAustraliaOnyama Limba QUALIFIED
David Q PerinBrazilIoni Bowcher QUALIFIED
Mujtaba O KolmetzJapanStephen Shaw PROPOSAL
Morrow Y MaletRussiaAnna Fali QUALIFIED
Chavez Y FlosiBrazilAmy Elsner QUALIFIED
Jones S CaldareraJapanOnyama Limba PROPOSAL
Stacey L RutaArgentinaAsiya Javayant UNQUALIFIED
Izzy G MarrierBrazilOnyama Limba UNQUALIFIED
Jeanfrancois M IturbideArgentinaElwin Sharvill RENEWAL
Julie P PaprockiIndiaAnna Fali RENEWAL
Jennifer X PoquetteIndiaAnna Fali QUALIFIED
Ricardo J PaprockiItalyElwin Sharvill QUALIFIED
Silvio P WieserArgentinaIoni Bowcher UNQUALIFIED
Jeanfrancois K MacleadItalyAnna Fali QUALIFIED
Nicolas X FlosiUnited KingdomAmy Elsner NEW
Munro C OldroydCanadaElwin Sharvill QUALIFIED
Kaitlin I MacleadRussiaAmy Elsner QUALIFIED
Silvio N MaletFranceIvan Magalhaes NEW
Salvatore U StockhamBrazilOnyama Limba UNQUALIFIED
Jennifer J NestleSpainStephen Shaw NEGOTIATION
Isabel V ButtUnited KingdomXuxue Feng NEW
Nicolas P AlbaresGermanyAnna Fali PROPOSAL
Izzy H VocelkaJapanIvan Magalhaes PROPOSAL
Antonio B GarufiIndiaElwin Sharvill RENEWAL
Wickens J GillianBrazilAmy Elsner QUALIFIED
Chavez Z DoeFranceStephen Shaw UNQUALIFIED
Chavez V SlusarskiSpainAsiya Javayant UNQUALIFIED
Frozen Columns
Name
Izzy V Bowley
Murillo Q Whobrey
Mujtaba W Dilliard
Johnson F Saylors
Chavez R Bowley
Kadeem C Wieser
Julie Z Butt
Maisha E Sergi
Kaitlin V Stenseth
Cody B Slusarski
Leja V Sergi
Clifford D Sergi
Isabel J Darakjy
Izzy K Wieser
Salvatore X Foller
Leja G Poquette
Isabel Q Figeroa
Claire F Saylors
Juan B Kolmetz
Smith P Stockham
Adams L Chui
Mujtaba O Briddick
Chavez F Butt
Salvatore K Glick
Leja V Inouye
Jennifer Y Doe
Chavez T Shinko
Morrow D Oldroyd
Juan D Malet
Munro G Chui
Maisha V Ferencz
Mayumi V Amigon
Greenwood I Bowley
Salvatore H Whobrey
Kadeem E Briddick
Juan V Morasca
Alejandro N Whobrey
Juan N Morasca
Aruna H Flosi
Wickens O Oldroyd
Aruna F Albares
Juan S Briddick
Maria D Kolmetz
Munro Q Malet
Tony N Ostrosky
David N Bowley
Clifford Q Stenseth
Greenwood T Perin
Tony F Rulapaugh
Murillo D Flosi
IdCountryDate
1000Japan2025-06-06
1001Germany2025-06-10
1002Spain2025-06-02
1003Canada2025-06-12
1004United Kingdom2025-05-18
1005Russia2025-05-19
1006Russia2025-06-13
1007Italy2025-05-20
1008Brazil2025-06-14
1009Germany2025-06-13
1010Italy2025-05-29
1011Russia2025-06-12
1012Brazil2025-06-16
1013Brazil2025-05-23
1014Canada2025-06-12
1015Brazil2025-06-11
1016Spain2025-05-22
1017Australia2025-05-20
1018Australia2025-06-10
1019Canada2025-06-03
1020Russia2025-05-31
1021Italy2025-05-21
1022India2025-06-15
1023France2025-05-30
1024Argentina2025-06-09
1025Canada2025-06-10
1026Italy2025-06-11
1027Germany2025-06-02
1028India2025-05-18
1029Canada2025-05-20
1030United Kingdom2025-05-23
1031Brazil2025-05-28
1032Spain2025-06-15
1033France2025-06-14
1034Japan2025-05-25
1035Argentina2025-06-05
1036France2025-06-08
1037France2025-06-01
1038Germany2025-06-16
1039Canada2025-06-16
1040Spain2025-06-12
1041Argentina2025-06-12
1042Russia2025-05-29
1043Brazil2025-06-14
1044Russia2025-05-19
1045Brazil2025-05-25
1046Brazil2025-05-27
1047Russia2025-06-14
1048Brazil2025-05-20
1049Australia2025-05-31

On-Demand Data

NameIdCountryDate
Chavez X Dilliard1000Canada2025-06-04
Mujtaba W Schemmer1001United Kingdom2025-05-22
Deepesh A Bowley1002United Kingdom2025-06-08
Faith L Gillian1003Italy2025-05-22
Cody W Poquette1004Spain2025-05-28
Juan N Dilliard1005India2025-05-22
Ivar W Schemmer1006Russia2025-06-02
Aruna S Iturbide1007Spain2025-06-07
Maisha Z Garufi1008United Kingdom2025-06-05
Murillo H Ferencz1009Japan2025-05-23
Greenwood J Campain1010France2025-06-06
Adams U Amigon1011Russia2025-06-12
Adams U Caudy1012India2025-05-19
Misaki J Sergi1013Italy2025-06-03
James E Caudy1014Brazil2025-06-02
Adams A Stenseth1015France2025-06-14
Antonio S Malet1016Argentina2025-06-04
Maisha Z Perin1017India2025-05-31
David Y Maclead1018Canada2025-05-21
Emily A Morasca1019Spain2025-05-20
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aruna N WaycottItalyIoni Bowcher NEGOTIATION
Silvio B FlosiFranceAnna Fali UNQUALIFIED
Aika E PoquetteJapanAnna Fali UNQUALIFIED
David C GillianSpainIoni Bowcher QUALIFIED
Juan D IturbideArgentinaElwin Sharvill PROPOSAL
Smith A DoeBrazilStephen Shaw NEW
Jennifer M FlosiItalyAnna Fali RENEWAL
Morrow E RimCanadaXuxue Feng RENEWAL
Salvatore P NickaUnited KingdomStephen Shaw RENEWAL
Arvin J SaylorsIndiaElwin Sharvill QUALIFIED
Darci V MaletCanadaAmy Elsner NEW
Aditya G ShinkoRussiaXuxue Feng QUALIFIED
Stacey G CaldareraAustraliaStephen Shaw RENEWAL
Julie F DoeSpainElwin Sharvill RENEWAL
Antonio P MaletItalyIvan Magalhaes PROPOSAL
Silvio R AmigonBrazilXuxue Feng NEW
Greenwood C WieserCanadaIvan Magalhaes RENEWAL
Deepesh U VenereGermanyIvan Magalhaes NEW
Aruna X BriddickFranceAnna Fali PROPOSAL
Aika Q TollnerGermanyAsiya Javayant QUALIFIED
Mujtaba U SlusarskiGermanyOnyama Limba NEGOTIATION
Johnson Z InouyeIndiaStephen Shaw QUALIFIED
Murillo O KuskoBrazilAsiya Javayant PROPOSAL
Ivar D OstroskyIndiaOnyama Limba NEW
Aruna S CaldareraUnited KingdomElwin Sharvill UNQUALIFIED
Clifford A WhobreyFranceOnyama Limba NEW
Kadeem U MarrierArgentinaIvan Magalhaes UNQUALIFIED
Maisha C SergiCanadaAsiya Javayant PROPOSAL
Smith Z RoysterRussiaXuxue Feng NEW
Francesco F SchemmerJapanOnyama Limba NEGOTIATION
Johnson J PerinCanadaElwin Sharvill QUALIFIED
Cody D RutaUnited KingdomElwin Sharvill RENEWAL
Ricardo Y SaylorsIndiaIoni Bowcher NEGOTIATION
Kaitlin T StensethFranceAmy Elsner NEW
Juan A PerinCanadaXuxue Feng NEW
Jones H TollnerArgentinaAnna Fali PROPOSAL
Isabel W OldroydJapanAsiya Javayant NEGOTIATION
Aruna J ShinkoJapanOnyama Limba RENEWAL
Rodrigues E MaletIndiaXuxue Feng RENEWAL
James J CaldareraUnited KingdomAmy Elsner 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>