2014-01-18 4 views
0

Я использую celleditor, когда я нажимаю на редактирование столбца, чтобы получить изменения, отражает необходимость обновить страницу с помощью f5. Я хочу изменить дату, поэтому я нажимаю кнопку «Изменить», затем выполнил измененное и нажатое сохранение, но изменения отражаются только при обновлении страницы.p: celleditor не обновляется после сохранения, требуется f5

<p:dataTable id="foodTableId" width="100%" cellspacing="1" cellpadding="0" border="0" var="v" value="#{dashboardBean.myFoodList}" paginator="true" 
     rows="#{msg['dashboard.product.mapping.datatable.rows']}" editable="true"> 
     <p:ajax event="rowEdit" listener="#{dashboardBean.onEdit}" update=":dashboardForm:foodTableId"/> 
     <p:ajax event="rowEditCancel" listener="#{dashboardBean.onCancel}" /> 
      <p:column style="width:100px;" sortBy="#{v.project}" headerText="Project Name"> 
       <p:cellEditor> 
       <f:facet name="output"> 
       <h:outputText value="#{v.project}" /> 
       </f:facet> 
       <f:facet name="input"> 
       <p:inputText style="width:305px;" value="#{v.project}"/> 
       </f:facet> 
       </p:cellEditor> 
      </p:column> 
      <p:column style="width:60px;" sortBy="#{v.action}" headerText="Action" id="actionId"> 
       <p:cellEditor> 
       <f:facet name="output"> 
       <h:outputText value="#{v.action}" /> 
       </f:facet> 
       <f:facet name="input"> 
       <h:selectOneMenu style="width:90px;" value="#{v.action}"> 
       <f:selectItem itemLabel="Promo Start" itemValue="Promo Start" /> 
       <f:selectItem itemLabel="Promo End" itemValue="Promo End" /> 
       </h:selectOneMenu> 
       </f:facet> 
       </p:cellEditor> 
      </p:column> 
      <p:column style="width:120px;" sortBy="#{v.promoDate}" headerText="Action Date"> 
       <p:cellEditor> 
       <f:facet name="output"> 
       <h:outputText value="#{v.promoDateString}" /> 
       </f:facet> 
       <f:facet name="input"> 
       <p:calendar value="#{v.promoDate}" pattern="MMM dd, yyyy" /> 
       </f:facet> 
       </p:cellEditor> 
      </p:column> 
<p:column style="width:50px;" headerText="#{msg['product.label.edit']}" > 
       <p:rowEditor/> 
      </p:column> 

боб

public String onEdit(RowEditEvent event) { 
    setEditMode(true); 
    foodPromoDTO = (FoodPromotionDTO) event.getObject(); 
    Map<String, Object> sessMap = CommonUtil.getSessionMap(); 
    SessionDTO sessionDTO = (SessionDTO) sessMap.get(WebConstants.SESSION_DTO); 
    String eid=sessionDTO.getUserDetailsDTO().getEid(); 
    Integer roleCountryId=sessionDTO.getLoggedinUserRoleCountryId(); 
    getDashboardService().addFoodPromotion(foodPromoDTO, eid, editMode, roleCountryId,sessionDTO.getLoggedinCountryCode()); 
    return WebConstants.DASHBOARD; 
} 

ответ

1

Вы должны добавить событие Ajax для этого когда-либо при е редактирования сделано оно будет сохранено.

<p:ajax event="cellEdit" listener="#{beanName.onCellEdit}" update="name of 
your component" /> 

Вы можете включить эту функцию в свой компонент для выполнения операции.

public void onCellEdit(CellEditEvent event) { 
     Object oldValue = event.getOldValue(); 
     Object newValue = event.getNewValue(); 
     //Do oepration 
    } 
+0

Я использую onEdit (RowEditEvent событие) – Surya

+0

использовать атрибут обновления в вашем АЯКС вызова. –

+0

Я добавил атрибут обновления, но до сих пор не обновляюсь. – Surya

Смежные вопросы