Summer Sale is here 🏖️ Get 50% off with code PRSM25 Learn More

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
Bangla
Bosnian
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
Uzbek
Vietnamese
Chinese
Chinese

Input Style

Themes

PrimeOne
Saga Blue Saga Blue
Vela Blue Vela Blue
Arya Blue Arya Blue
Bootstrap
Bootstrap Blue Light Bootstrap Blue Light
Bootstrap Purple Light Bootstrap Purple Light
Bootstrap Blue Dark Bootstrap Blue Dark
Bootstrap Purple Dark Bootstrap Purple Dark
Material Design
Material Indigo Light Material Indigo Light
Material Deep Purple Light Material Deep Purple Light
Material Indigo Dark Material Indigo Dark
Material Deep Purple Dark Material Deep Purple Dark
Material Design Compact
Material Compact Indigo Light Material Compact Indigo Light
Material Compact Deep Purple Light Material Compact Deep Purple Light
Material Compact Indigo Dark Material Compact Indigo Dark
Material Compact Deep Purple Dark Material Compact Deep Purple Dark
Legacy
Nova Light Nova Light
Nova Dark Nova Dark
Nova Colored Nova Colored
Luna Amber Luna Amber
Luna Blue Luna Blue
Luna Green Luna Green
Luna Pink Luna Pink

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 E KuskoAustraliaOnyama Limba QUALIFIED
Kaitlin I BowleyJapanElwin Sharvill NEGOTIATION
Tony A KolmetzArgentinaStephen Shaw NEW
Stacey Q StensethBrazilOnyama Limba NEGOTIATION
Maria Q RutaFranceAmy Elsner NEGOTIATION
Ashley F FigeroaUnited KingdomAnna Fali PROPOSAL
Leja H ChuiCanadaIvan Magalhaes QUALIFIED
Faith L KuskoItalyAnna Fali NEGOTIATION
Smith X MacleadRussiaIvan Magalhaes QUALIFIED
Stacey S GillianUnited KingdomAmy Elsner QUALIFIED
Mujtaba X BologniaBrazilAmy Elsner PROPOSAL
Faith V RimBrazilElwin Sharvill RENEWAL
Aditya H ShinkoCanadaElwin Sharvill NEW
Rodrigues O ShinkoCanadaAsiya Javayant NEW
Silvio T GillianCanadaElwin Sharvill UNQUALIFIED
Munro L PaprockiSpainAnna Fali PROPOSAL
Francesco G AmigonIndiaOnyama Limba NEW
Deepesh A VocelkaAustraliaAnna Fali NEW
Stacey X InouyeRussiaOnyama Limba QUALIFIED
Johnson W TollnerRussiaXuxue Feng NEW
Isabel S SchemmerAustraliaAsiya Javayant QUALIFIED
Darci N GlickItalyXuxue Feng PROPOSAL
Mayumi X GauchoFranceXuxue Feng UNQUALIFIED
Jeanfrancois C SergiGermanyIvan Magalhaes QUALIFIED
Munro D PerinUnited KingdomAmy Elsner NEW
Costa I RulapaughRussiaAnna Fali NEW
Leon L GlickJapanXuxue Feng PROPOSAL
Johnson K ButtSpainAsiya Javayant QUALIFIED
Claire I MaletIndiaIoni Bowcher PROPOSAL
Aditya H VocelkaBrazilAmy Elsner RENEWAL
Darci M ButtBrazilElwin Sharvill PROPOSAL
Morrow Z WaycottAustraliaOnyama Limba NEW
Munro T NickaIndiaAsiya Javayant PROPOSAL
James E WhobreyAustraliaOnyama Limba RENEWAL
James U DilliardSpainIvan Magalhaes NEGOTIATION
Antonio P GauchoIndiaStephen Shaw NEW
Cody T SlusarskiBrazilStephen Shaw QUALIFIED
Greenwood E VenereBrazilElwin Sharvill PROPOSAL
Isabel J GlickIndiaIoni Bowcher NEW
Izzy T RoysterJapanStephen Shaw RENEWAL
Kaitlin N InouyeSpainStephen Shaw PROPOSAL
Johnson A SlusarskiFranceAmy Elsner NEGOTIATION
Aika N GarufiCanadaAsiya Javayant NEW
Ricardo W WhobreyAustraliaBernardo Dominic QUALIFIED
Leja N DoeIndiaIoni Bowcher NEW
Murillo Z FerenczJapanStephen Shaw PROPOSAL
Chavez Q DoeFranceOnyama Limba PROPOSAL
Nicolas F PerinItalyIoni Bowcher UNQUALIFIED
Maria C TollnerArgentinaIvan Magalhaes RENEWAL
Izzy S CampainIndiaOnyama Limba NEW
Horizontal
NameCountryRepresentativeStatus
Aditya N PaprockiUnited KingdomIvan Magalhaes NEGOTIATION
Leja X NestleGermanyBernardo Dominic QUALIFIED
Silvio I TollnerSpainStephen Shaw UNQUALIFIED
Leon C MacleadFranceXuxue Feng NEW
Chavez I StockhamJapanIoni Bowcher RENEWAL
Jefferson Y PerinBrazilXuxue Feng UNQUALIFIED
Adams E SergiFranceIoni Bowcher NEGOTIATION
James W InouyeSpainIvan Magalhaes RENEWAL
Jones G CampainGermanyAsiya Javayant RENEWAL
Misaki J WaycottSpainAsiya Javayant RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Tony F PoquetteCanada2025-08-09Truhlar And Truhlar Attys QUALIFIED72Ivan Magalhaes
1001Costa L RulapaughAustralia2025-08-13Rangoni Of Florence QUALIFIED39Bernardo Dominic
1002Deepesh V SaylorsJapan2025-07-29Truhlar And Truhlar Attys RENEWAL64Ioni Bowcher
1003Jones J WieserFrance2025-08-11Chapman, Ross E Esq RENEWAL73Anna Fali
1004Misaki L GlickItaly2025-08-22Morlong Associates NEW48Anna Fali
1005Tony A OldroydAustralia2025-08-14Commercial Press PROPOSAL41Bernardo Dominic
1006Claire I GauchoJapan2025-08-08Morlong Associates UNQUALIFIED51Asiya Javayant
1007Mujtaba L TollnerIndia2025-07-27Rangoni Of Florence NEW88Stephen Shaw
1008Kaitlin M StensethCanada2025-08-09Printing Dimensions NEW78Asiya Javayant
1009Clifford D KuskoGermany2025-08-16Printing Dimensions NEGOTIATION9Asiya Javayant
1010Kadeem P IturbideItaly2025-08-08Benton, John B Jr QUALIFIED68Asiya Javayant
1011Izzy V FerenczUnited Kingdom2025-07-27Chanay, Jeffrey A Esq UNQUALIFIED3Onyama Limba
1012Costa G GillianArgentina2025-08-21Truhlar And Truhlar Attys NEGOTIATION15Ivan Magalhaes
1013Munro J MarrierFrance2025-08-02Morlong Associates QUALIFIED13Onyama Limba
1014Ivar B AmigonSpain2025-08-22Rangoni Of Florence QUALIFIED59Asiya Javayant
1015Jefferson V SaylorsRussia2025-08-04Buckley Miller Wright QUALIFIED45Xuxue Feng
1016Tony O AlbaresAustralia2025-08-17Benton, John B Jr NEW85Anna Fali
1017Mayumi U MarrierIndia2025-08-16Chemel, James L Cpa NEGOTIATION15Ivan Magalhaes
1018Wickens A BriddickItaly2025-08-08Morlong Associates NEW91Stephen Shaw
1019Jones I DarakjyArgentina2025-08-18Buckley Miller Wright NEGOTIATION26Anna Fali
1020Maisha X OldroydItaly2025-08-20Chanay, Jeffrey A Esq QUALIFIED14Ioni Bowcher
1021Deepesh L CaldareraUnited Kingdom2025-07-28Printing Dimensions UNQUALIFIED15Xuxue Feng
1022Aruna V IturbideBrazil2025-08-13Buckley Miller Wright UNQUALIFIED12Anna Fali
1023Chavez F SaylorsRussia2025-08-21Commercial Press NEGOTIATION38Ioni Bowcher
1024Arvin E FerenczCanada2025-08-16Dorl, James J Esq UNQUALIFIED67Xuxue Feng
1025Sinclair T MorascaArgentina2025-08-20Truhlar And Truhlar Attys QUALIFIED36Ioni Bowcher
1026Kadeem R CaldareraFrance2025-08-07Benton, John B Jr RENEWAL76Stephen Shaw
1027Isabel R PerinRussia2025-08-15Chemel, James L Cpa UNQUALIFIED69Amy Elsner
1028Chavez J WieserItaly2025-08-07King, Christopher A Esq UNQUALIFIED43Ioni Bowcher
1029Mujtaba R NickaItaly2025-07-30Rangoni Of Florence NEW12Bernardo Dominic
1030James B PerinSpain2025-08-05Chapman, Ross E Esq RENEWAL23Ioni Bowcher
1031Adams C OldroydAustralia2025-07-26Truhlar And Truhlar Attys UNQUALIFIED56Amy Elsner
1032Silvio A CaldareraGermany2025-08-21Chemel, James L Cpa NEW21Asiya Javayant
1033Emily F BowleyUnited Kingdom2025-08-01Printing Dimensions RENEWAL42Amy Elsner
1034Wickens D FerenczAustralia2025-08-09Feltz Printing Service QUALIFIED9Onyama Limba
1035Murillo N BologniaSpain2025-08-23Chapman, Ross E Esq RENEWAL37Ivan Magalhaes
1036Jones R BriddickAustralia2025-08-11Chapman, Ross E Esq NEW81Onyama Limba
1037Nicolas B WaycottJapan2025-07-31Feltz Printing Service QUALIFIED96Xuxue Feng
1038Cody D KolmetzIndia2025-08-03Dorl, James J Esq PROPOSAL53Stephen Shaw
1039Aika X MacleadJapan2025-07-29Chapman, Ross E Esq PROPOSAL52Ivan Magalhaes
1040Izzy M ChuiItaly2025-08-23Feltz Printing Service NEGOTIATION71Bernardo Dominic
1041James P KolmetzFrance2025-08-15Feltz Printing Service NEGOTIATION50Asiya Javayant
1042Kadeem Z SlusarskiAustralia2025-07-31Dorl, James J Esq NEW89Onyama Limba
1043Ricardo E PerinCanada2025-08-04Chemel, James L Cpa NEW11Asiya Javayant
1044Francesco H GillianSpain2025-08-07Rangoni Of Florence UNQUALIFIED18Xuxue Feng
1045Wickens I RutaAustralia2025-07-26Benton, John B Jr PROPOSAL76Anna Fali
1046Aika Q GlickBrazil2025-08-13Morlong Associates NEGOTIATION93Ivan Magalhaes
1047Leja U RutaJapan2025-08-15Buckley Miller Wright QUALIFIED94Elwin Sharvill
1048Misaki U PaprockiJapan2025-07-27Truhlar And Truhlar Attys NEGOTIATION26Ivan Magalhaes
1049Kadeem E FlosiUnited Kingdom2025-08-21Rangoni Of Florence QUALIFIED38Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Jones H WhobreyJapanAsiya Javayant QUALIFIED
Ashley X CaudyIndiaIvan Magalhaes NEGOTIATION
James O DoeIndiaAmy Elsner UNQUALIFIED
Leon C SlusarskiBrazilAmy Elsner UNQUALIFIED
Mayumi X BologniaIndiaBernardo Dominic QUALIFIED
Arvin Y ButtBrazilIoni Bowcher QUALIFIED
Adams F MacleadIndiaAnna Fali UNQUALIFIED
Mujtaba R ButtRussiaIoni Bowcher UNQUALIFIED
Kaitlin R MaletItalyIoni Bowcher NEW
Jefferson Q PerinArgentinaAmy Elsner UNQUALIFIED
Juan S FollerGermanyAnna Fali NEW
Kadeem E DilliardUnited KingdomAmy Elsner QUALIFIED
Leja I RimAustraliaStephen Shaw PROPOSAL
Juan L NickaGermanyOnyama Limba RENEWAL
Mayumi L GlickUnited KingdomOnyama Limba NEW
Nicolas R WhobreyAustraliaAnna Fali NEGOTIATION
Clifford C NickaIndiaOnyama Limba RENEWAL
Francesco W DilliardCanadaElwin Sharvill NEGOTIATION
Ashley K TollnerIndiaXuxue Feng PROPOSAL
Deepesh B InouyeAustraliaIoni Bowcher NEW
Stacey B VenereJapanAnna Fali PROPOSAL
Maria X DarakjyRussiaOnyama Limba PROPOSAL
Leja U CampainJapanBernardo Dominic UNQUALIFIED
Mayumi I OldroydItalyXuxue Feng RENEWAL
Adams Q BowleyFranceIoni Bowcher UNQUALIFIED
Tony M MaletBrazilIvan Magalhaes NEGOTIATION
Smith M OldroydArgentinaAnna Fali RENEWAL
Darci D FollerCanadaIoni Bowcher NEGOTIATION
Jefferson J KolmetzFranceBernardo Dominic NEW
Nicolas G SlusarskiItalyAsiya Javayant UNQUALIFIED
Izzy I BowleyItalyStephen Shaw QUALIFIED
Arvin R NestleUnited KingdomBernardo Dominic PROPOSAL
Adams F StockhamJapanIvan Magalhaes RENEWAL
Alejandro B FollerFranceBernardo Dominic NEGOTIATION
James J WhobreyArgentinaOnyama Limba RENEWAL
Leon B AlbaresArgentinaAsiya Javayant NEW
Ricardo A GauchoGermanyOnyama Limba QUALIFIED
Maria T KuskoSpainAmy Elsner NEGOTIATION
Antonio O DarakjySpainOnyama Limba NEW
Clifford U AmigonCanadaIvan Magalhaes QUALIFIED
Wickens T AlbaresAustraliaAmy Elsner UNQUALIFIED
David O KuskoFranceOnyama Limba PROPOSAL
Sinclair A FlosiSpainAsiya Javayant UNQUALIFIED
Claire H OstroskyCanadaElwin Sharvill RENEWAL
Kaitlin B CaudyIndiaIvan Magalhaes QUALIFIED
Deepesh O RutaIndiaAnna Fali UNQUALIFIED
Munro R RulapaughArgentinaAsiya Javayant RENEWAL
Kadeem X RutaUnited KingdomXuxue Feng NEW
Mujtaba I WaycottSpainAnna Fali RENEWAL
Ricardo I GauchoFranceOnyama Limba PROPOSAL
Frozen Columns
Name
Ricardo M Caudy
Francesco N Ostrosky
Ivar J Briddick
Francesco Y Caudy
Emily S Campain
Mujtaba Q Campain
Juan S Foller
Jefferson O Stenseth
Maria G Albares
James H Oldroyd
Johnson U Oldroyd
Smith S Gaucho
Ricardo R Malet
Salvatore M Rim
Munro A Ostrosky
Ashley H Doe
Darci Z Perin
Kaitlin T Nestle
Claire L Bowley
Cody V Doe
Darci O Stenseth
Mayumi K Figeroa
Morrow P Iturbide
Costa W Oldroyd
Juan X Dilliard
Deepesh T Saylors
Smith B Malet
Sinclair C Butt
Clifford J Paprocki
Clifford A Flosi
Ricardo E Schemmer
Jefferson M Perin
Arvin U Paprocki
Misaki E Vocelka
Izzy J Briddick
Sinclair Y Nicka
Faith L Chui
Morrow G Shinko
Darci E Vocelka
Johnson I Butt
Julie Q Vocelka
Johnson K Vocelka
Maisha W Royster
Jefferson H Marrier
Izzy W Morasca
Jeanfrancois K Rim
Julie I Bowley
Costa Z Stockham
Johnson I Glick
David A Nestle
IdCountryDate
1000Spain2025-08-11
1001Russia2025-08-16
1002Spain2025-08-10
1003Germany2025-08-13
1004Brazil2025-08-07
1005Canada2025-08-18
1006Canada2025-08-20
1007Germany2025-08-24
1008France2025-08-03
1009United Kingdom2025-08-15
1010Brazil2025-08-11
1011Canada2025-08-11
1012Australia2025-07-27
1013Canada2025-08-09
1014United Kingdom2025-07-26
1015Japan2025-08-20
1016United Kingdom2025-08-16
1017France2025-08-07
1018Argentina2025-08-07
1019Canada2025-08-09
1020Australia2025-08-11
1021Italy2025-08-01
1022France2025-07-31
1023United Kingdom2025-08-05
1024United Kingdom2025-08-06
1025Brazil2025-08-14
1026Canada2025-08-13
1027Japan2025-07-28
1028Japan2025-08-09
1029Germany2025-08-02
1030Canada2025-08-22
1031Spain2025-08-23
1032Canada2025-08-10
1033Germany2025-08-17
1034Spain2025-08-18
1035Canada2025-08-19
1036Japan2025-08-22
1037Italy2025-08-10
1038Argentina2025-08-18
1039Spain2025-07-29
1040Spain2025-08-02
1041Canada2025-07-27
1042Japan2025-08-12
1043Argentina2025-08-02
1044Japan2025-08-18
1045Japan2025-08-21
1046Germany2025-08-13
1047Italy2025-07-27
1048Argentina2025-08-03
1049France2025-08-22

On-Demand Data

NameIdCountryDate
Kaitlin U Caudy1000France2025-08-13
Wickens N Slusarski1001Argentina2025-07-30
Sinclair L Stockham1002Russia2025-08-06
Rodrigues C Rulapaugh1003Spain2025-08-14
Ashley Z Perin1004Japan2025-08-18
Cody I Malet1005France2025-07-30
Jennifer O Darakjy1006Japan2025-08-08
James M Figeroa1007India2025-08-23
Chavez I Schemmer1008Italy2025-08-07
James A Nestle1009Japan2025-08-14
Leja M Vocelka1010Russia2025-08-02
Murillo J Campain1011Australia2025-08-22
Nicolas F Schemmer1012Brazil2025-08-09
Alejandro C Caudy1013Argentina2025-08-13
Sinclair U Oldroyd1014Germany2025-07-29
Chavez T Saylors1015Spain2025-07-30
Juan N Gaucho1016Russia2025-08-23
Jeanfrancois A Darakjy1017Argentina2025-07-26
Jeanfrancois Y Kolmetz1018Brazil2025-07-29
Adams Z Maclead1019India2025-08-19
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Cody S NickaIndiaIoni Bowcher PROPOSAL
Rodrigues G PerinUnited KingdomAsiya Javayant PROPOSAL
Octavia V VocelkaSpainBernardo Dominic NEGOTIATION
Jennifer M IturbideItalyXuxue Feng RENEWAL
Munro D DarakjyJapanAmy Elsner RENEWAL
Mujtaba R OstroskyItalyIvan Magalhaes QUALIFIED
Octavia F ButtRussiaStephen Shaw NEW
Jennifer B CampainItalyStephen Shaw PROPOSAL
Costa F CaldareraJapanIoni Bowcher NEGOTIATION
James E PoquetteIndiaIvan Magalhaes UNQUALIFIED
Aika H CaldareraItalyStephen Shaw UNQUALIFIED
Aika V KuskoSpainAmy Elsner QUALIFIED
Julie B DoeBrazilElwin Sharvill NEW
Greenwood B IturbideFranceElwin Sharvill RENEWAL
Murillo G BowleySpainIoni Bowcher NEGOTIATION
Antonio G WieserBrazilIvan Magalhaes NEW
Julie P MarrierAustraliaElwin Sharvill UNQUALIFIED
Smith Z SchemmerCanadaBernardo Dominic QUALIFIED
Morrow T ChuiCanadaBernardo Dominic NEW
Emily L RoysterGermanyAmy Elsner NEW
Chavez I RutaIndiaAmy Elsner NEGOTIATION
Arvin W GillianGermanyXuxue Feng PROPOSAL
Rodrigues B ChuiFranceIvan Magalhaes UNQUALIFIED
Munro R RimJapanAnna Fali NEW
Maria P ButtJapanBernardo Dominic NEGOTIATION
Aika V IturbideAustraliaAmy Elsner UNQUALIFIED
James H SchemmerAustraliaIvan Magalhaes UNQUALIFIED
Costa V RulapaughJapanElwin Sharvill NEGOTIATION
Rodrigues T RoysterIndiaIvan Magalhaes NEW
Rodrigues L BriddickUnited KingdomAnna Fali NEGOTIATION
Johnson C FollerRussiaXuxue Feng NEGOTIATION
David M MacleadSpainIoni Bowcher NEW
Clifford Q RulapaughCanadaAsiya Javayant NEW
Salvatore C DoeSpainAsiya Javayant NEGOTIATION
Jefferson G WieserUnited KingdomIvan Magalhaes NEW
Kaitlin H ChuiAustraliaStephen Shaw UNQUALIFIED
Darci V GauchoGermanyIoni Bowcher QUALIFIED
Sinclair N KuskoSpainIoni Bowcher QUALIFIED
Juan Z BriddickFranceOnyama Limba PROPOSAL
Greenwood G KuskoAustraliaElwin Sharvill 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" frozenColumnsAlignment="left">
            <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>