मैं यह समझने की कोशिश कर रहा हूं कि रिचफैसेस डेटास्क्रोलर के साथ सही अंकन कैसे करें।रिचफैसेस 3 डेटास्क्रोलर को सही पेजिंग बनाने के लिए कैसे करें
वर्तमान में मेरी क्वेरी तालिका से सभी डेटा खींचती है और मुझे यह चाहिए कि जब आप डेटास्क्रोलर के अगले बटन पर क्लिक करें, तो यह अगले 20 पंक्तियों के लिए डीबी से पूछेगा।
मैं समझता हूं कि पंक्तियों को सीमित करने के लिए क्वेरी कैसे लिखनी है, लेकिन मुझे यकीन नहीं है कि एक विशिष्ट विधि को कॉल करने के लिए डेटास्क्रोलर का अगला बटन कैसे प्राप्त करें।
मुझे लगता है कि संभावित समाधान वाले Richfaces मंचों पर पोस्ट करने वाले बहुत से लोग हैं, लेकिन वे सभी डेटा मॉडल का उपयोग करते हैं। चूंकि मैं ओआरएम का उपयोग नहीं कर रहा हूं, इसलिए मुझे यकीन नहीं है कि मैं अपने समाधान के लिए इन समाधानों को कैसे फिट कर सकता हूं।
किसी भी मदद की सराहना की जाती है।
<rich:extendedDataTable id="resultsTable" value="#{tableBacking.results}" var="results" sortMode="single" rowKeyVar="row">
<rich:columns value="#{tableBacking.columns == null ? '' : tableBacking.columns}" var="columns" index="ind" id="column#{ind}" sortBy="#{results[ind].data}" rendered="#{tableBacking.columns != null}">
<f:facet name="header">
<h:outputText value="#{columns.columnDescription}" />
</f:facet>
<h:outputText value="#{results[ind].data}" />
</rich:columns>
</rich:extendedDataTable>
<rich:datascroller for="resultsTable" page="#{tableBacking.page}" renderIfSinglePage="false" />
लिया जा रहा है सेम
public class TableBacking {
private List<List<TableData>> results = null;
private int page = 0;
public int getPage() {
return page;
}
public void setPage(int page) {
this.page = page;
}
public List<List<TableData>> getResults() throws Exception {
return results;
}
public void setResults(List<List<TableData>> results) {
this.results = results;
}
private void getData(String whereClause) {
try {
DataDao dd = new DataDao();
results = dd.getData(); // dd.getData just runs a query on a table and puts the results in a List of lists.
} catch (Exception e) {}
}
समस्या मैं इस समाधान के साथ आ रही हैं कि datascroller प्रस्तुत नहीं हो रही है क्योंकि मैं अपने DataTable पंक्तियों है 20 पर सेट करें और जब पृष्ठ लोड होता है, तो यह केवल 20 पंक्तियां प्राप्त करता है। क्या आप जानते हैं कि इस के आसपास कैसे जाना है? क्या डेटास्क्रॉलर को अधिकतम पंक्तियों को बताने का कोई तरीका है, इसलिए यह जानता है कि कितने पेज की गणना की जाती है? – Catfish
मुझे यकीन नहीं है कि मैं समझता हूं कि "" आप केवल बाकी पृष्ठों पर तत्वों के आईडी को लोड कर सकते हैं और बाद में जब आप पेज को एक्सेस करने जा रहे हैं तो उन्हें आईडी ' – Catfish
पर आधारित करें ने कहा कि आप एक ओआरएम का उपयोग नहीं कर रहे हैं। मैंने इस समाधान का उपयोग हाइबरनेट के साथ किया है, पूरे डेटा को लोड कर रहा है लेकिन आलसी लोडिंग में कुछ विशेषताओं, इसके साथ, जब मैं कुछ पेज का अनुरोध करता हूं तो मैं उन वस्तुओं को लोड कर सकता हूं और आलसी लोड अपवादों को रोक सकता हूं। आपके मामले में मुझे लगता है कि आप गैर-दृश्यमान पृष्ठों में * नकली * ऑब्जेक्ट्स (जिसमें केवल आईडी विशेषता असाइन की जाएगी) स्टोर कर सकते हैं। इसे कैसे प्राप्त करें? शुरुआत से पूरी आईडी सूची लोड हो रही है और केवल आवश्यकता होने पर सापेक्ष जानकारी लेना। मुझे नहीं पता कि आपका मॉडल कैसे काम करता है, मैं बस एक विचार देता हूं। –