Locale

Language
English
English
English
French
German
German
German
Italian
Korean
Spanish
Catalan
Dutch
Portuguese
Portuguese
Arabic
Arabic
Bulgarian
Bangla
Bosnian
Czech
Greek
Estonian
Persian
Finnish
Danish
Hindi
Indonesian
Icelandic
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

Free Themes

Built-in component themes created by the PrimeFaces Theme Designer.

Saga Saga
Vela Vela
Arya Arya

Legacy Free Themes

Luna Amber Luna Amber
Luna Blue Luna Blue
Luna Green Luna Green
Luna Pink Luna Pink
Nova Nova
Nova Nova Alt
Nova Nova Accent

DataTable Edit

Data displayed on datatable can be edited at row or cell level.

Row Editing
CodeNameStatusPrice
b084c5ca
Bamboo Watch
INSTOCK
$65.00
678b5990
Black Watch
INSTOCK
$72.00
057b7290
Blue Band
LOWSTOCK
$79.00
5f421659
Blue T-Shirt
INSTOCK
$29.00
835dbc9b
Bracelet
INSTOCK
$15.00
f381d2a8
Brown Purse
OUTOFSTOCK
$120.00
c14d6a3d
Chakra Bracelet
LOWSTOCK
$32.00
f64a623b
Galaxy Earrings
INSTOCK
$34.00
efe3da44
Game Controller
LOWSTOCK
$99.00
701816f0
Gaming Set
INSTOCK
$299.00
Cell Editing with Click and RightClick
CodeNameStatusPrice
0fee2f50
Bamboo Watch
INSTOCK
$65.00
45a67e10
Black Watch
INSTOCK
$72.00
52a0e237
Blue Band
LOWSTOCK
$79.00
0f2bcb70
Blue T-Shirt
INSTOCK
$29.00
210f76ac
Bracelet
INSTOCK
$15.00
8e2cf4bc
Brown Purse
OUTOFSTOCK
$120.00
f88639af
Chakra Bracelet
LOWSTOCK
$32.00
164c8a1d
Galaxy Earrings
INSTOCK
$34.00
de457f89
Game Controller
LOWSTOCK
$99.00
72acbfd4
Gaming Set
INSTOCK
$299.00
Cell Editing with Double Click Event (dblclick)
CodeNameStatusPrice
47300578
Bamboo Watch
INSTOCK
$65.00
4c842118
Black Watch
INSTOCK
$72.00
65355629
Blue Band
LOWSTOCK
$79.00
795af5b5
Blue T-Shirt
INSTOCK
$29.00
74ea1080
Bracelet
INSTOCK
$15.00
a211d96a
Brown Purse
OUTOFSTOCK
$120.00
a7cb4c74
Chakra Bracelet
LOWSTOCK
$32.00
d77c8f9b
Galaxy Earrings
INSTOCK
$34.00
885a8012
Game Controller
LOWSTOCK
$99.00
aee5639f
Gaming Set
INSTOCK
$299.00

<h:form id="form">
    <p:growl id="msgs" showDetail="true"/>

    <div class="card">
        <h5>Row Editing</h5>
        <p:dataTable id="products1" var="product" value="#{dtEditView.products1}" editable="true"
                     style="margin-bottom:20px" cellNavigation="true">

            <p:ajax event="rowEdit" listener="#{dtEditView.onRowEdit}" update=":form:msgs"/>
            <p:ajax event="rowEditCancel" listener="#{dtEditView.onRowCancel}" update=":form:msgs"/>

            <p:column headerText="Code">
                <p:cellEditor>
                    <f:facet name="output">
                        <h:outputText value="#{product.code}"/>
                    </f:facet>
                    <f:facet name="input">
                        <p:inputText value="#{product.code}" style="width:100%" required="true"/>
                    </f:facet>
                </p:cellEditor>
            </p:column>

            <p:column headerText="Name">
                <p:cellEditor>
                    <f:facet name="output">
                        <h:outputText value="#{product.name}"/>
                    </f:facet>
                    <f:facet name="input">
                        <p:inputText value="#{product.name}" style="width:100%" label="Name"/>
                    </f:facet>
                </p:cellEditor>
            </p:column>

            <p:column headerText="Status">
                <p:cellEditor>
                    <f:facet name="output">
                        <h:outputText value="#{product.inventoryStatus}"/>
                    </f:facet>
                    <f:facet name="input">
                        <p:selectOneMenu value="#{product.inventoryStatus}" style="width:100%">
                            <f:selectItems value="#{dtEditView.inventoryStatusList}" var="status"
                                           itemLabel="#{status.text}" itemValue="#{status}"/>
                        </p:selectOneMenu>
                    </f:facet>
                </p:cellEditor>
            </p:column>

            <p:column headerText="Price">
                <p:cellEditor>
                    <f:facet name="output">
                        <h:outputText value="#{product.price}">
                            <f:convertNumber type="currency" currencySymbol="$"/>
                        </h:outputText>
                    </f:facet>
                    <f:facet name="input">
                        <p:inputNumber value="#{product.price}" style="width:100%" label="Price" symbol="$"/>
                    </f:facet>
                </p:cellEditor>
            </p:column>

            <p:column style="width:6rem">
                <p:rowEditor editTitle="Edit Row" cancelTitle="Cancel Edit" saveTitle="Save Row"/>
            </p:column>
        </p:dataTable>
    </div>

    <div class="card">
        <h5>Cell Editing with Click and RightClick</h5>
        <p:dataTable id="products2" var="product" value="#{dtEditView.products2}" editable="true"
                     editMode="cell" widgetVar="cellProducts">

            <p:ajax event="cellEdit" listener="#{dtEditView.onCellEdit}" update=":form:msgs"/>

            <p:column headerText="Code">
                <p:cellEditor>
                    <f:facet name="output">
                        <h:outputText value="#{product.code}"/>
                    </f:facet>
                    <f:facet name="input">
                        <p:inputText id="modelInput2" value="#{product.code}" style="width:100%"/>
                    </f:facet>
                </p:cellEditor>
            </p:column>

            <p:column headerText="Name">
                <p:cellEditor>
                    <f:facet name="output">
                        <h:outputText value="#{product.name}"/>
                    </f:facet>
                    <f:facet name="input">
                        <p:inputText value="#{product.name}" style="width:100%" label="Name"/>
                    </f:facet>
                </p:cellEditor>
            </p:column>

            <p:column headerText="Status">
                <p:cellEditor>
                    <f:facet name="output">
                        <h:outputText value="#{product.inventoryStatus}"/>
                    </f:facet>
                    <f:facet name="input">
                        <p:selectOneMenu value="#{product.inventoryStatus}" style="width:100%">
                            <f:selectItems value="#{dtEditView.inventoryStatusList}" var="status"
                                           itemLabel="#{status.text}" itemValue="#{status}"/>
                        </p:selectOneMenu>
                    </f:facet>
                </p:cellEditor>
            </p:column>

            <p:column headerText="Price">
                <p:cellEditor>
                    <f:facet name="output">
                        <h:outputText value="#{product.price}">
                            <f:convertNumber type="currency" currencySymbol="$"/>
                        </h:outputText>
                    </f:facet>
                    <f:facet name="input">
                        <p:inputNumber value="#{product.price}" style="width:100%" label="Price" symbol="$"/>
                    </f:facet>
                </p:cellEditor>
            </p:column>
        </p:dataTable>
    </div>

    <div class="card">
        <h5>Cell Editing with Double Click Event (dblclick)</h5>
        <p:dataTable id="products3" var="product" value="#{dtEditView.products3}" editable="true"
                     editMode="cell"
                     widgetVar="cellCars2" editInitEvent="dblclick" style="margin-bottom:20px">

            <p:ajax event="cellEdit" listener="#{dtEditView.onCellEdit}" update=":form:msgs"/>

            <p:column headerText="Code">
                <p:cellEditor>
                    <f:facet name="output">
                        <h:outputText value="#{product.code}"/>
                    </f:facet>
                    <f:facet name="input">
                        <p:inputText id="modelInput3" value="#{product.code}" style="width:100%"/>
                    </f:facet>
                </p:cellEditor>
            </p:column>

            <p:column headerText="Name">
                <p:cellEditor>
                    <f:facet name="output">
                        <h:outputText value="#{product.name}"/>
                    </f:facet>
                    <f:facet name="input">
                        <p:inputText value="#{product.name}" style="width:100%" label="Name"/>
                    </f:facet>
                </p:cellEditor>
            </p:column>

            <p:column headerText="Status">
                <p:cellEditor>
                    <f:facet name="output">
                        <h:outputText value="#{product.inventoryStatus}"/>
                    </f:facet>
                    <f:facet name="input">
                        <p:selectOneMenu value="#{product.inventoryStatus}" style="width:100%">
                            <f:selectItems value="#{dtEditView.inventoryStatusList}" var="status"
                                           itemLabel="#{status.text}" itemValue="#{status}"/>
                        </p:selectOneMenu>
                    </f:facet>
                </p:cellEditor>
            </p:column>

            <p:column headerText="Price">
                <p:cellEditor>
                    <f:facet name="output">
                        <h:outputText value="#{product.price}">
                            <f:convertNumber type="currency" currencySymbol="$"/>
                        </h:outputText>
                    </f:facet>
                    <f:facet name="input">
                        <p:inputNumber value="#{product.price}" style="width:100%" label="Price" symbol="$"/>
                    </f:facet>
                </p:cellEditor>
            </p:column>
        </p:dataTable>
    </div>

    <p:contextMenu for="products2" widgetVar="cMenu">
        <p:menuitem value="Edit Cell" icon="pi pi-search"
                    onclick="PF('cellProducts').showCellEditor();return false;"/>
        <p:menuitem value="Hide Menu" icon="pi pi-times" onclick="PF('cMenu').hide()"/>
    </p:contextMenu>
</h:form>