public void initEditGrid() { FacesContext context = FacesContext.getCurrentInstance(); clearGrid(); HtmlGridEditing gridEditing = new HtmlGridEditing(); Class[] args = new Class[] { CellValueChangeEvent.class }; UnifiedMethodExpression methodExpr = UnificationHelper .createUnifiedMethodExpression(context, "#{cellChangeValueBean.cellValueChange}", args); gridEditing.setCellValueChangeListener(methodExpr); gridEditing.setEnableOnMouseClick("single"); editGrid.getTemplateItemsBehaviors().getFacets(). put(GridView.FACET_GRID_EDITING, gridEditing); HtmlColumn firstNameColumn = new HtmlColumn (); firstNameColumn.setSortBy("firstName"); UnifiedOutput columnFirstNameHeader = new UnifiedOutput(); columnFirstNameHeader.setValue("FirstName"); firstNameColumn.setHeader(columnFirstNameHeader); UnifiedOutput columnText = new UnifiedOutput(); UnifiedValueExpression uniValueExpressionFirstName = UnificationHelper .createUnifiedValueExpression(context,"#{DATA_ROW.firstName}"); columnText.setUnifiedValueExpression("value", uniValueExpressionFirstName); firstNameColumn.getChildren().add(columnText); firstNameColumn.setStyle("background-color: #AACC44;"); editGrid.getTemplateItems().add(firstNameColumn); editGrid.dataBind(); } private void clearGrid() { // clear the grid editGrid.setFooter(null); editGrid.setHeader(null); editGrid.getChildren().clear(); editGrid.getTemplateItems().clear(); editGrid.setColumnPositions(null); } public void cellValueChange(CellValueChangeEvent event) { FacesContext ctx = FacesContext.getCurrentInstance(); String newValue = (String) event.getNewValue(); String oldValue = (String) event.getOldValue(); System.out.println( " Old value - " + oldValue + "; newValue - " + newValue); }