2010-08-04 14 views
13

मान लीजिए मैं इसएक विजेट युक्त gwt ग्रिड सेल पर rowspan और colspan मान कैसे सेट करें?

Grid g = new Grid(2,2); 
Label l = new Label("Hello"); 
g.setWidget(0,1, l); 
s.setColspan(0,1,2); // there is no such method :(

की तरह एक कोड तो मैं कैसे एक विजेट युक्त gwt ग्रिड सेल पर रोस्पेन और कॉल्सपन मूल्यों को निर्धारित कर सकते हैं?

उत्तर

25

यदि यह एक विकल्प आप ग्रिड के बजाय FlexTable का उपयोग कर सकते है:

FlexTable flexTb= new FlexTable(); 
flexTb.getFlexCellFormatter().setColSpan(0, 1, 2); 
flexTb.setWidget(0, 1, new Label("Hello")); 
+6

बस FYI करें, 'FlexTable',' Grid' (http://code.google.com/p/google-web-toolkit-incubator/wiki/BulkTableRenderers) की तुलना में धीमी है तो आप जब तक गतिशील रूप से कोशिकाओं को जोड़ने के लिए, आपको अधिकतम प्रदर्शन के लिए 'ग्रिड' के साथ चिपकना चाहिए :) –

+0

@Cataclysm "और सवाल यह नहीं कहता कि उसके पास कोई विकल्प है" तकनीकी प्रबंधक के रूप में आपको वास्तव में अपनी सोच का तरीका बदलना चाहिए। इसके अलावा, "उपयोगी जानकारी" प्रदान करने के लिए स्वतंत्र महसूस करें। – Jla

+0

क्षमा करें, सवाल 'एक विजेट युक्त gwt ग्रिड सेल पर पंक्ति और colspan मूल्य कैसे सेट करें?'। मुझे लगता है कि यह जवाब इसके लिए नहीं था। फ्लेक्सटेबल, कॉलस्पेन या रोशन सेट करने के लिए बिल्ड-इन विधि है लेकिन मैं अपने जीडब्ल्यूटी-डाटाग्रिड में स्पैन सेट करने में भी परेशान हूं। क्या आप मुझे फ्लेक्सटेबल का उपयोग करने का सुझाव देंगे? नहीं, यह संभव नहीं हो सकता है। – Cataclysm

8

इस के लिए एक नहीं तो साधारण-समाधान है। यह सीधे डोम में हेरफेर करके काम करता है।

Grid g = new Grid(10, 5); 

Element e = g.getCellFormatter().getElement(0, 0); 
e.setAttribute("colspan", "5"); 

ArrayList<Element> toRemove = new ArrayList<Element>(); 
for (int x=1; x<5; x++) 
    toRemove.add(g.getCellFormatter().getElement(0, x)); 
for (Element f : toRemove) 
    f.removeFromParent(); 

यह निम्न करता है:

  • सेट गुण पहले टीडी की "colspan" "5"
  • एक ही पंक्ति में अन्य TDs दूर करने के लिए

कृपया ध्यान दें, कि मैं प्रयोग किया जाता है लूप के लिए। मैंने इसे एक सिंगल लूप के साथ करने की कोशिश की लेकिन कुछ तत्व नल थे, इसलिए मैंने इसे इस तरह से आजमाया और यह काम किया।

थॉमस

+0

यह आईई 7,8, या 9 में काम नहीं करता है। वर्तमान में सेलटेबल – drye

+1

के लिए एक ही समाधान की तलाश में मैंने डोम को सीएसएस-फॉर्मेटिंग में हेरफेर करने की कोशिश करने से स्विच किया। अच्छी चीजें हैं जो .my-table tr: first-child> td: first-child + td {border: none} और कुछ ... यह पहली पंक्ति में दूसरे सेल को प्रारूपित करेगी कोई सीमा नहीं है। इसलिए, उदाहरण के लिए, अगर कॉलस्पेन 5 था, तो मैंने अपनी मेज को स्वरूपित करने के लिए स्वरूपित किया। –

+0

दूर लेना ग्रिड चूसना है ... – BuvinJ

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