2013-01-31 25 views
11

मैं यूई का उपयोग कर रहा हूं: टेबल जेनरेट करने के लिए दोहराना। Ui के साथ: दोहराएं varStatus का उपयोग करके पंक्तियों को क्रमांकित करना आसान है। सूची पंक्ति नेविगेशन को संभालने के लिए बैकिंग बीन को कॉल करते समय मैं varStatus से पंक्ति आईडी के आधार पर हूं, उदाहरण के लिए सूची में आइटम को ऊपर या नीचे ले जाना।जेएसएफ 2 डेटा डेटा के बिना डेटा पंक्ति सूचकांक मॉडल

अब मैं एक समग्र घटक बनाना चाहता हूं जो पंक्तियों को चिह्नित करने, उन्हें ऊपर/नीचे ले जाने के लिए आवश्यक सभी कार्यक्षमताओं के साथ एक अनुकूलन तालिका बनाता है। ऐसा करने के लिए, ui: दोहराना काम नहीं करेगा क्योंकि मैं ' विभिन्न स्तंभों को संभालने का एक तरीका देखें; मुझे एक स्थान और शरीर में एक दूसरे में शीर्षक निर्दिष्ट करने की आवश्यकता है (और मैं उस ज्ञान बिंदु तक नहीं पहुंच पाया जहां मैं एक कस्टम घटक बना सकता हूं)। इसलिए मैं इसके बजाय डेटाटेबल पर गया, इसका मतलब है कि हेडर को शरीर की सामग्री के समान स्थान पर पहलुओं के रूप में निर्दिष्ट करना है।

कि अच्छी तरह से काम जब तक मैंने देखा है किसी कारण के लिए वहाँ कोई varStatus अब थे। मैंने datamodel की आवश्यकता के बिना सूची प्रस्तुति को संभालने में बहुत काम किया है और मैं इसका उपयोग शुरू नहीं करना चाहता हूं। क्या कोई तरीका है कि मैं datamodel का उपयोग किए बिना तालिका में प्रदर्शित होने वाली वर्तमान पंक्ति संख्या प्राप्त कर सकता हूं?

इसके अलावा, मैं viewScope उपयोग कर रहा हूँ और अगर मैं सही ढंग से समझ लिया है इसका मतलब है कि मैं सेम के लिए DataTable बाध्य नहीं कर सकते हैं।

उत्तर

28

बस दृश्य खुद करने के बजाय एक सेम के लिए तालिका बाँध।

<h:dataTable binding="#{table}" ...> 

तो फिर तुम #{table.rowIndex} उपयोग कर सकते हैं जहां आवश्यक हो। जैसे

<h:column>#{table.rowIndex + 1}</h:column> 
+1

मैं, एक और पोस्ट जहाँ आप एक समाधान के रूप में यह था पढ़ा हालांकि मैंने सोचा कि बाध्यकारी = "# {तालिका}" सेम के लिए बाध्य करने के लिए कुछ आशुलिपि था। मुझे नहीं पता था कि यह संभव था। धन्यवाद बलुस! – nivis

+0

आपका स्वागत है। – BalusC

+0

मैंने बिल्कुल सोचा जैसे @nivis। हो सकता है क्योंकि 'var' विशेषता के मान को ईएल कथन की आवश्यकता नहीं है, लेकिन 'बाध्यकारी' विशेषता का मान करता है। मुझे पूर्वाग्रह था कि ईएल कथन के अंदर किसी भी नामित मूल्य को पहले ही घोषित किया जाना चाहिए (और स्वयं द्वारा), और मुझे लगता है कि कुछ नाम वैरिएबल (उदाहरण के लिए 'टेबल',' rowItem') देने के लिए ईएल स्टेटमेंट्स के साथ नहीं होना चाहिए। –