2012-04-11 10 views
5

में मैं इस जावा में लिखा की तरह एक Enum है:प्रदर्शन Enum वर्णन Jqgrid बजाय Enum

public enum Status 
{ 
    ACTIVE("Active"), IN_ACTIVE("InActive"); 

    Status(String desc) 
    { 
    this.description = desc; 
    } 

    private String description; 

    public String getDescription() 
    { 
    return description; 
    } 

    public void setDescription(String desc) 
    { 
    this.description = desc; 
    } 
} 

इस enum एक jqGrid में एक संपत्ति है। लेकिन यह हमेशा enum यानी सक्रिय या INAACTIVE प्रदर्शित करता है। मैं jqgrid सक्रिय और Inctive दिखाने के लिए चाहता हूँ। धन्यवाद

+0

क्या आप जावास्क्रिप्ट कोड पोस्ट कर सकते हैं जो jqGrid को परिभाषित करता है। क्या आप 'फॉर्मेटर:' चयन 'का उपयोग करते हैं (देखें [यहां] (http://www.trirand.com/jqgridwiki/doku.php?id=wiki:predefined_formatter#formatter_type_select))? क्या आप सर्वर प्रतिक्रिया के अंदर स्थिति और स्थिति विवरण के बीच मैपिंग प्रदान कर सकते हैं? यह उपयोगी होगा यदि आप जेएसओएन/एक्सएमएल डेटा के उदाहरण पर पोस्ट करते हैं जो सर्वर लौटाता है (डेटा की एक पंक्ति पर्याप्त होगी)। – Oleg

उत्तर

2

आप इसे प्राप्त करने के लिए custom formatter लिख सकते हैं। उदाहरण के लिए:

formatStatus: function (cellvalue, options, rowObject){ 
    if (cellvalue == "ACTIVE") 
     return "Active"; 
    return "InActive"; 
} 

फिर अपने colmodel से फ़ॉर्मेटर का उपयोग सुनिश्चित करें:

{name: 'status', formatter: formatStatus, ...}, 

कि मदद करता है?

+0

आपकी प्रतिक्रिया के लिए धन्यवाद। यह निश्चित रूप से काम करेगा। लेकिन मैं शायद स्क्रिप्ट फ़ाइल या जेएसपी में enum के विवरण को फिर से परिभाषित नहीं करना चाहता हूं। विवरण प्राप्त करने के लिए enum पर getDescription() को कॉल करने का कोई तरीका नहीं है। इसका कारण यह है कि, अगर मुझे बदलाव करने की ज़रूरत है तो सक्रिय करने के लिए सक्रिय कहें, मैं इसे केवल एक ही स्थान पर बनाउंगा। धन्यवाद –

+0

@Uchenna - आपके कोड को कैसे संरचित किया जाता है, इस पर निर्भर करते हुए, आप पृष्ठ पर चर के मानों को लिख सकते हैं और फिर अपने फॉर्मेटर के भीतर उन चर का उपयोग कर सकते हैं। उदाहरण के लिए: 'ActiveStatusValue वापस करें; ' –

+0

ठीक है। मुझे लगता है कि यह ठीक है। क्या इसे प्राप्त करने के कोई अन्य तरीके हैं। क्योंकि मैं सोच रहा था, अगर कोई उपयोगकर्ता की तरह ग्रिड पर एक जवाबीन संपत्ति का उपयोग कर सकता है। उपयोगकर्ता नाम, क्यों कोई भी enum के साथ ऐसा नहीं कर सकता। सिर्फ एक विचार। धन्यवाद –

1

एक toString() अपने Enum में लागू किया

public toString() { 
    return description; 
} 

यह सुनिश्चित करें कि आपके json प्रतिक्रिया Enum नाम के बजाय विवरण नहीं है कि कर देगा इस प्रकार है।

+0

यह दृष्टिकोण सबसे अच्छा विकल्प होगा। लेकिन यहां समस्या यह है कि मैं एचटीएमएल चयन में इसी enum का उपयोग करता हूं। तो किसी फॉर्म के संशोधित होने पर, चयन चयन विकल्प के मूल्य विशेषता के स्थान पर enum का वर्णन प्रस्तुत करेगा। तो डिफ्रेंस enum के बजाय सर्वर पर जमा हो जाता है। आशा है कि आप इसे समझ लेंगे। –