arya-blue
luna-amber
luna-blue
luna-green
luna-pink
nova-dark
nova-light
saga-blue
vela-blue
Sheet
Cells and columns can be validated individually as well as marked required.
Assets
Source

<script type="text/javascript">
        var myRegex = /^\d+$/; // regex only digits

        // function must return callback(bool)
        function validateEquals6(value, callback) {
            if (value != 6) {
                callback(false);
            } else {
                callback(true);
            }
        }
    </script>

    <pe:sheet id="sheet" value="#{sheetAjaxController.assets}" var="row" height="400" rowKey="#{row.assetId}"
              showRowHeaders="true" sortBy="#{row.assetId}" sortOrder="ascending" width="1000"
              widgetVar="sheetWidget">
        <p:ajax event="change" listener="#{sheetAjaxController.cellChangeEvent}"/>

        <f:facet name="header">
            <h:outputText value="Assets"/>
        </f:facet>

        <pe:sheetcolumn headerText="Id (readOnly)" readOnly="true" value="#{row.assetId}" colWidth="150"/>
        <pe:sheetcolumn headerText="Required" value="#{row.hostName}" colWidth="140"
                        required="true" requiredMessage="This field is required!"/>
        <pe:sheetcolumn id="colBigDecimal" headerText="BigDecimal(1-10)" value="#{row.purchasePrice}" colWidth="100" styleClass="htRight">
            <f:converter converterId="javax.faces.BigDecimal"/>
            <f:validateDoubleRange minimum="1.7" maximum="10.5" for="sheet"/>
        </pe:sheetcolumn>
        <pe:sheetcolumn headerText="Integer" value="#{row.value1}" colWidth="100" styleClass="htRight" onvalidate="numeric">
            <f:converter converterId="javax.faces.Integer"/>
        </pe:sheetcolumn>
        <pe:sheetcolumn headerText="Regex" value="#{row.value2}" colWidth="100" styleClass="htRight" onvalidate="myRegex">
            <f:converter converterId="javax.faces.Integer"/>
        </pe:sheetcolumn>
        <pe:sheetcolumn headerText="JS Exactly 6" value="#{row.value3}" colWidth="100" styleClass="htRight" onvalidate="validateEquals6">
            <f:converter converterId="javax.faces.Integer"/>
        </pe:sheetcolumn>
        <pe:sheetcolumn headerText="Faces Exactly 5" value="#{row.value4}" colWidth="100" styleClass="htRight"
                        validator="#{sheetAjaxController.validateExactly5}">
            <f:converter converterId="javax.faces.Integer"/>
        </pe:sheetcolumn>
        <f:facet name="footer">
            <h:outputText value="#{sheetAjaxController.assets.size()} Records"/>
        </f:facet>
    </pe:sheet>
            
Components and more
Documentation
Attributes (move mouse over the names to see data types)
Name Description
No attributes available for this component.
PrimeFaces Extensions Showcase - © 2011-2025,PrimeFaces: 15.0.13,PrimeFaces Extensions: 15.0.14-SNAPSHOT,JSF: Apache MyFaces JSF-2.3 Core Impl 2.3.10,Server: Apache Tomcat (TomEE)/9.0.82 (8.0.16),Build time: 2026-02-23 00:32