मैं प्राइमफ़ेस 3.5 का उपयोग कर रहा हूं और मैं DataTable - ContextMenu घटक लागू कर रहा हूं। हालांकि, मैं पंक्ति में एक सेल पर क्लिक करके एक पंक्ति को हटाना चाहता हूं।प्राइमफेस में पंक्ति हटाएं
मेरे JSF पेज:
<h:form id="form">
<p:growl id="messages" showDetail="true" />
<p:contextMenu for="productID" widgetVar="cMenu">
<p:menuitem value="Edit Cell" icon="ui-icon-search"
onclick="productService.showCellEditor();return false;" />
<p:menuitem value="Delete Row" icon="ui-icon-search"
onclick="productService.delete();return false;" />
</p:contextMenu>
<p:dataTable id="productID" var="product"
value="#{productService.getListOrderedByDate()}"
editable="true" editMode="cell" widgetVar="productTable"
paginator="true" rows="10"
paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
rowsPerPageTemplate="5,10,15">
<f:facet name="header"> Airbnb Product </f:facet>
<p:ajax event="cellEdit"
listener="#{productService.onCellEdit}"
update=":form:messages" />
<p:column headerText="id" style="width:15%">
<p:cellEditor>
<f:facet name="output">
<h:outputText value="#{product.id}" />
</f:facet>
<f:facet name="input">
<p:inputText value="#{product.id}" style="width:96%" />
</f:facet>
</p:cellEditor>
...
</p:column>
</p:dataTable>
</h:form>
मैं अपने सेवा में एक हटाने विधि है जो काम करना चाहिए लागू किया है। हालांकि, जब मैं अपने संदर्भ मेनू में डिलीट बटन दबाता हूं तो कुछ भी नहीं होता है। समस्या का कारण क्या हो सकता है? चयनित से
<p:contextMenu for="productID" widgetVar="cMenu">
<p:menuitem value="Edit Cell" icon="ui-icon-search"
onclick="productService.showCellEditor();return false;" />
<p:menuitem value="Delete" update="productID" icon="ui-icon-close"
actionListener="#{productService.delete}" />
</p:contextMenu>
<p:dataTable id="productID" var="product"
value="#{productService.getListOrderedByDate()}"
editable="true" editMode="cell" widgetVar="productTable"
paginator="true" rows="10"
paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
rowsPerPageTemplate="5,10,15"
selection="#{productService.selectedRow}" selectionMode="single" rowKey="#{product.id}">
हालांकि, जब मैं आईडी प्राप्त करना चाहते हैं:
अद्यतन
मैं पीएफ पृष्ठ पर की तरह कर दिया साथ:
public void delete() {
log.info("Deleting data:");
log.info(selectedRow.getId());
// productDAO.delete(selectedRow);
}
और मेरे datatable पंक्ति मुझे NullPointerException
मिलता है। मैं वास्तव में आपके उत्तर की सराहना करता हूं !!
public void delete() {
carsSmall.remove(selectedRow);
}
//declare selectedRow variable + getter/setter
से लिया अपने सेम में
<p:dataTable selection="#{productService.selectedRow}" selectionMode="single"....
:
क्या यह एक जावा बीन विधि 'productService.delete() है;' आप अपने जेएस 'ऑनक्लिक' कॉलबैक में निष्पादित करने का प्रयास कर रहे हैं? यदि ऐसा है, तो आप इसे अपने संकेत के लिए – Daniel