मेरे पास प्राइमफ़ेस में एक डेटाटेबल है और मैं चाहता हूं कि जब मैं इसमें कोई पंक्ति जोड़ूं, तो डेटाटेबल के अंतिम पृष्ठ को देखें।प्राइमफ़ेस: डेटाटेबल पर सेट पेज
मेरे .xhtml पृष्ठ है:
<h:form id=...>
...
<p:dataTable var="webTemplate" id="templateTable" widgetVar="tbl1"/>
...
</h:form>
<h:form id=...>
...
<p:inputText id="txt_description" value="#{templateController.templateDescription}" label="templateDescription">
<f:validateLength for="txt_name" minimum="1"/>
<p:ajax event="change"
listener="#{calculatePageTable.setPageTableTemplate}" onsuccess="setTabIndexTT()"/>
</p:inputText>
...
</h:form>
<script type="text/javascript">
function setTabIndexTT(){
tbl1.getPaginator().setPage(#{calculatePageTable.pageTableTemplate});
}
</script>
सेम:
@ManagedBean
@SessionScoped
public class CalculatePageTable {
private int pageTableTemplate = 0;
private int pageTableField = 0;
public void setPageTableTemplate() {
final DataTable d = (DataTable) FacesContext.getCurrentInstance().getViewRoot()
.findComponent("form:templateTable");
pageTableTemplate = d.getPageCount() - 1;
}
public int getPageTableTemplate() {
return pageTableTemplate;
}
public void setPageTemplateField() {
final DataTable d = (DataTable) FacesContext.getCurrentInstance().getViewRoot()
.findComponent("detailsTable:webTemplateUpdateTable");
pageTableField = (d.getPageCount() - 1);
}
public int getPageTableField() {
return pageTableField;
}
}
लेकिन js समारोह setTabIndexTT() onSuccess ajax द्वारा कभी नहीं कहा जाता है ...
मैं कैसे कर सकते हैं पंक्ति जोड़ते समय मेरे डेटाटेबल के अंतिम पृष्ठ को सेट करें?
प्राइमफ़ेस संस्करण 3.1.1
+1 'd.setFirst (पहले) के लिए कुछ जोड़ना होगा; '। मेरे मामले में, मैंने उपयोग किया है: '((डेटाटेबल) FacesContext.getCurrentInstance()। GetViewRoot()। FindComponent (" myForm ")। ढूंढें कॉम्पोनेंट (" myDataTable "))।सेट फर्स्ट (0) 'हर बार जब मैं सामग्री को रीफ्रेश करता हूं तो पहले पृष्ठ पर जाने के लिए। – falsarella
क्या मुझे पता चलेगा कि 'ROWS_DATATABLE' क्या इंगित करता है ?? उलझन में –
मुझे लगता है कि प्राइमफेस के बाध्यकारी-विशेषता का उपयोग करना-डेटाटेबल कोड को अधिक साफ (कोई हार्डकोडेड आईडी) नहीं बनाता है –