आमतौर पर, खेतों डॉट नोटेशन का उपयोग कर एक दस्तावेज़ डेटा स्रोत के लिए बाध्य कर रहे हैं
<inputText value="#{contact['firstName']}" />
बाद इस वाक्य रचना में फ़ील्ड नाम किया जा रहा है क्योंकि एक स्ट्रिंग के रूप में माना जाता है, बीन की निहित संपत्ति के रूप में नहीं, इसे गतिशील रूप से गणना की जा सकती है। इन गतिशील क्षेत्रों को परिभाषित करने का सबसे आसान तरीका जो मैंने पाया है, वह प्रत्येक मूल प्रकार के फ़ील्ड के लिए कस्टम नियंत्रण बनाना है, और डेटा स्रोत और फ़ील्ड नाम को स्वीकार करने के रूप में प्रत्येक को परिभाषित करना है। तो क्षेत्र में ही तो एक वाक्य रचना निम्न के समान के साथ समाप्त होता है:
<inputText value="#{compositeData.dataSource[compositeData.fieldName]}" />
कि वाक्य रचना का उपयोग करके, किसी भी जटिलता की एक गणना निर्धारित करने के लिए क्या फ़ील्ड नाम कस्टम नियंत्रण करने के लिए पारित करने के लिए इस्तेमाल किया जा सकता। परिदृश्य में आप पूरा करने के लिए प्रयास कर रहे हैं, दोहराने नियंत्रण चारों ओर से घेरे है कि क्षेत्र जोड़ी आप प्रत्येक के लिए एक क्षेत्र प्रत्यय नामित करने के लिए ... शायद निम्नलिखित की तरह कुछ की अनुमति होगी पर एक indexVar को निर्दिष्ट:
<xp:repeat indexVar="fieldSuffix" value="#{viewScope.rowCount}">
<xp:div>
<xc:dynamicInputText dataSource="#{contact}" fieldName="fullName_#{fieldSuffix}" />
<xc:dynamicInputNumber dataSource="#{contact}" fieldName="phoneNumber_#{fieldSuffix}" />
</xp:div>
</xp:repeat>
इस के साथ
दृष्टिकोण, आप व्यूस्कोप में निर्दिष्ट सीमा तक "fullName_0", "fullName_1" नामक फ़ील्ड्स के साथ समाप्त हो जाएंगे। आम तौर पर, एकमात्र जटिलता यह सुनिश्चित कर रही है कि जब कोई मौजूदा दस्तावेज़ खोला जाए, तो दृश्यस्कोप चर सही सीमा पर वापस सेट हो जाता है। इसके लिए एक और दृष्टिकोण, ज़ाहिर है, वास्तव में दस्तावेज़ पर एक और वस्तु के रूप में सीमा को बचा रहा है और इसके बजाय दोहराए गए मूल्य को बाध्यकारी कर रहा है।
स्रोत
2012-03-15 13:35:35
धन्यवाद टिम, निश्चित रूप से यह एक जाने देगा और आपको पोस्ट करेगा। मैंने यह कोशिश नहीं की है, लेकिन सिर्फ यह सोचकर कि क्या मैं दोहराव नियंत्रण का आंशिक ताज़ा करता हूं, मैं मौजूदा डेटा खो नहीं पाऊंगा? – pipalia
मैं वही लाइनों के साथ इसका जवाब देने के लिए काफी कुछ कर रहा था, यह विधि काम करेगी, मैं 'दोहराना सीमा' की गणना करने की अनुशंसा करता हूं ताकि दृश्यस्कोप सीमा के समान हो ताकि आपको आश्चर्य न हो कि नए फ़ील्ड क्यों नहीं दिख रहे हैं 30 हिट करने के बाद। –
ग्रेट सुझाव, डेक्कन।आप निश्चित रूप से दोहराने के लिए एक पेजर भी संलग्न कर सकते हैं, लेकिन इस प्रकार के इंटरफ़ेस के लिए अधिकांश उपयोगकर्ता उम्मीद नहीं करेंगे कि पेजिनेशन को टाइप प्रकार इंटरफेस के लिए उपलब्ध तरीके से उपलब्ध कराया जाए, इसलिए बस "पंक्तियों" विशेषता को हमेशा सीमा से मिलान करने के लिए मजबूर करना है। शायद बेहतर। –