2011-06-02 10 views
12

क्या मेरे पास डेटाग्रिड है जो डेटा क्षैतिज रूप से लंबवत प्रदर्शित करता है?फ्लेक्स वर्टिकल डाटाग्रिड

array('firstname':'John','lastname':'Doe'), 
array('firstname':'Jack','lastname':'Jill') 

मैं चाहता हूँ डेटा इस तरह प्रदर्शित करने के लिए:

Fields  Value1 Value2 
Firstname  John  Jack 
Lastname  Doe  Jill 

और इतने पर .... क्या प्राप्त करने के लिए सबसे अच्छा तरीका है

उदाहरण के लिए

, अगर यह मेरी dataProvider है यह .. अगर मुझे डेटाग्रिड घटक का विस्तार करना है, तो कृपया बताएं कि कैसे ..

+0

+1 अच्छा सवाल, – Ryan

+0

फ्लेक्स 4.5 डाटाग्रिड या एमएक्स डाटाग्रिड? फ्लेक्स 3 या 4? –

+0

ओह क्षमा करें ... फ्लेक्स 4 – Lin

उत्तर

4

तो यह एक हैक है ... लेकिन यह पता चला है कि आप आसानी से स्पार्क डेटाग्रिड के प्रवाह को नहीं बदल सकते हैं। जो मैं बता सकता हूं, उससे आपको इसके अंदर के हर घटक को ओवरराइड करना होगा और इसमें काफी समय लगेगा। डेटाग्रिड अपने स्वयं के लेआउट का उपयोग करता है और यह डेटा के 1 पंक्ति = 1 टुकड़े के विषय पर बहुत सेट लगता है।

तो ... हैक शुरू:

<s:DataGrid rotation="270"> 
    <s:columns> 
    <s:ArrayList> 
     <s:GridColumn itemRenderer="unrotate" headerRenderer="headerUnrotate"/> 
     <s:GridColumn itemRenderer="unrotate" headerRenderer="headerUnrotate"/> 
    </s:ArrayList> 
    </s:columns> 
</s:DataGrid> 

ठीक है ... मैं क्या किया? मैं सिर्फ पूरे डाटाग्रिड घुमाता हूं। मैं इसे कैसे ठीक करूं ताकि हमें आपके सिर को झुकाव न पड़े? मैं itemrenderer में प्रत्येक कॉलम को अन-घुमाता हूं। होली हैक बैटमैन।

यहाँ आइटम रेंडरर unrotate है:

<?xml version="1.0" encoding="utf-8"?> 
<s:GridItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009" 
       xmlns:s="library://ns.adobe.com/flex/spark" 
       xmlns:mx="library://ns.adobe.com/flex/mx" clipAndEnableScrolling="true"> 

<fx:Script> 
    <![CDATA[ 
     override public function prepare(hasBeenRecycled:Boolean):void { 
      lblData.text = data[column.dataField] 
     } 
    ]]> 
</fx:Script> 

<s:Label id="lblData" top="9" left="7" rotation="90"/> 

</s:GridItemRenderer> 

हैडर कोड समान है, सिर्फ 90 बारी बारी से वापस जहां हम शुरू करने के लिए मिलता है। मुझे पता है कि यह समाधान सही से बहुत दूर है, लेकिन यह सबसे अच्छा है कि मैं डेटाग्रिड क्लास

के साथ पूरी तरह से गड़बड़ किए बिना सोच सकता हूं कि आपको शायद WIDER हेडर प्रदान करने के लिए त्वचा को ओवरराइड करने की भी आवश्यकता है ... जो वास्तव में एक TALLER हेडर है हम 270 डिग्री घुमाए गए हैं। अन्य तो यह वास्तव में ठीक काम करना चाहिए ...