2011-02-07 13 views
5

के साथ लिंक-जैसे टेक्स्ट मैं रिचफैस का उपयोग करके एक लिंक मेनू पर एक संदर्भ मेनू पर एक संदर्भ मेनू प्रस्तुत करना चाहता हूं (ब्लू टेक्स्ट, और अंडरलाइन और कर्सर ऑनमूसओवर)। तो, एक लिंक की कल्पना करें जो क्लिक करते समय एक संदर्भ मेनू दिखाता है। ध्यान दें कि मुझे कोई परवाह नहीं है कि टेक्स्ट वास्तव में एक लिंक है, मैं बस इसे पर एक लिंक के रूप में दिखाना चाहता हूं। तो, यहां तक ​​कि सामान्य पाठ भी ठीक होगा, मैं इसे सीएसएस का उपयोग करके एक लिंक के रूप में प्रकट कर दूंगा।रिचफैसेस: कॉन्टेक्स्टमेनू

मैं निम्नलिखित स्थिति है:

  • संदर्भ मेनू, क्लाइंट पक्ष पर प्रदर्शित होना चाहिए एक अनुरोध नहीं करने पड़ते।
  • संदर्भ मेनू को rich:componentControl (इन "लिंक") का उपयोग करके एक डेटाटेबल के अंदर दिखाई देना चाहिए, इसलिए उसी rich:contextMenu को फिर से उपयोग किया जाना चाहिए।

मैं अभी भी एक संतोषजनक समाधान के रूप में प्रत्येक दृष्टिकोण मैं कोशिश की है मेरे लिए एक समस्या का कारण है नहीं मिला है,:

  1. अगर मैं h:outputText का उपयोग करें (है कि आदर्श होगा), मैं इस पर अनुलग्न नहीं कर सकते एक rich:componentControl (मुझे लगता है क्योंकि यह एक ऑनक्लिक घटना नहीं चला सकता है)।
  2. यदि मैं a4j:commandLink का उपयोग करता हूं, हालांकि मैं rich:componentControl संलग्न कर सकता हूं, तो यह सर्वर अनुरोध करता है। मैंने अनुरोध को रोकने के लिए onclick="return false;" जोड़ने की कोशिश की, लेकिन Richfaces rich:componentControlद्वारा उत्पन्न जेएस को के बाद जो भी ऑनक्लिक के अंदर है, जो इस कोड को बिल्कुल नहीं पहुंचाता है, और निश्चित रूप से संदर्भ मेनू बिल्कुल दिखाई नहीं देता है ।

क्या ऐसा करने का कोई तरीका है? कृपया याद रखें, कोई अनुरोध नहीं!

उत्तर

2

आप कोशिश कर सकते हैं

<rich:componentControl disableDefault="true" ...> 

इस परम componentControl return false; ही जोड़ना चाहिए साथ प्रलेखन के अनुसार।

लेकिन इसी बग के बारे में पता होना: RF-5607

मामले प्रलेखन में निहित है आप एचटीएमएल एंकर का उपयोग कर सकते हैं। This answer से पता चलता componentControl साथ और पृष्ठ ताज़ा बिना एक लिंक बनाने के लिए कैसे:

<h:outputLink value="#" id="link" onclick="return false;"> 
    <h:outputText value="Link text"/> 
    <rich:componentControl attachTo="link" for="panel" operation="show" event="onclick"/> 
</h:outputLink> 

onclick="return false;" क्लिक किया लिंक करने के लिए पृष्ठ स्क्रॉल से लंगर से बचाता है।

+0

उत्तर के लिए धन्यवाद। मैंने disabledDefault = "true" सेट किया है, लेकिन दुर्भाग्य से POST अनुरोध पहले जैसा होता है। (+1) –

+0

अद्यतन उत्तर मेरे लिए काम करता है। –