2010-07-27 5 views
14

JSF h:column tag fix widthजेएसएफ में डेटाटेबल रेंडर कॉलम के लिए चौड़ाई कैसे सेट करें?

मैंने इस तरह से प्रयास किया, लेकिन मुझे यह काम नहीं मिल सका। प्रस्तुत एचटीएमएल के साथ, मुझे हेडर या डेटाटेबल पंक्तियों के लिए चौड़ाई विशेषता दिखाई नहीं देती है। मैं किसी भी घटक libs के बिना जेएसएफ 1.2 का उपयोग कर रहा हूँ। क्या समस्या हो सकती है?

उत्तर

37

वह लिंक जो उत्तर ईमानदारी से मुझे समझ में नहीं आता है। <h:column> क्योंकि यह डिफ़ॉल्ट जेएसएफ कार्यान्वयन does not में है, उन विशेषताओं का समर्थन करता है। यह मुझसे बहुत दूर है कि इसे 6 वोट क्यों मिले और इसे स्वीकार किया गया। यह अज्ञान या संयोग होगा (शायद दोनों प्रश्नकर्ता और उत्तर जेएसएफ कार्यान्वयन का उपयोग कर रहे हैं, मुझे पता नहीं है कि <h:column> के लिए एक रेंडरर है जो स्वचालित रूप से सभी अज्ञात विशेषताओं को वास्तविक HTML विशेषताओं में परिवर्तित करता है, लेकिन कम से कम, मानक जेएसएफ आरआई/Mojarra ऐसा नहीं करता है, MyFaces शायद?)।

ने कहा कि कॉलम को अलग से स्टाइल करने के लिए, आपको <h:dataTable> की columnClasses विशेषता का उपयोग करने की आवश्यकता है। यह सीएसएस क्लास नामों की एक कमजोर स्ट्रिंग स्वीकार करता है जिसे <h:column> द्वारा उत्पन्न <td> elemenes पर बाद में लागू किया जाएगा।

<table> 
    <tbody> 
     <tr> 
      <td class="column1">...</td> 
      <td class="column2">...</td> 
      <td class="column3">...</td> 
     </tr> 
    </tbody> 
</table> 

चौड़ाई निर्दिष्ट करने के लिए, बस तदनुसार सीएसएस लागू होते हैं:

<h:dataTable columnClasses="column1,column2,column3"> 
    <h:column>...</h:column> 
    <h:column>...</h:column> 
    <h:column>...</h:column> 
</h:dataTable> 

कुछ इस तरह के रूप में खत्म हो जाएगा।

.column1 { width: 200px; } 
.column2 { width: 100px; } 
.column3 { width: 50px; } 
+0

क्या होगा यदि आपके पास है? आदेश मिलाया जाएगा। –

+2

@ रैमसस: हाँ, वास्तव में, यह डिज़ाइन द्वारा है। आप इसे गतिशील रूप से बीन में पॉप्युलेट कर सकते हैं और इसे 'कॉलम क्लासेस = "# {bean.columnClasses}" जैसे संदर्भित कर सकते हैं। – BalusC

+2

वह समाधान था जिसे मैंने अबाउट सोचने के बाद भी सोचा था :)। –

संबंधित मुद्दे