2010-01-04 17 views
6

में नेस्टेड div कैसे प्राप्त करें मैं जीडब्ल्यूटी में एक नेस्टेड div प्राप्त करना चाहता हूं और वहां एक विजेट डालने में सक्षम हूं। कुछ इस तरह:जीडब्ल्यूटी

<div id="container"> 
    <div id="content_left"> 
    </div> 
    ...other divs 
</div> 

मैं सामग्री_ बाएं पाने और वहां एक विजेट डालने में सक्षम होना चाहता हूं। अभी तक सभी रूटपेनल टैग के अंदर divs हो जाता है। मैंने DOM.getElementById (...) का उपयोग करने का भी प्रयास किया लेकिन मुझे नहीं पता कि विजेट को कैसे डालना है क्योंकि ऐड विधि निर्दिष्ट करता है कि इनपुट पैरामीटर टाइप बच्चे के होना चाहिए।

अब मुझे सीएसएस और स्थिति के बारे में बहुत कुछ पता नहीं है और मैंने उपरोक्त स्टाइल नहीं किया है। यह मेरे ग्राफिक डिजाइनर से कुछ मिला है। मुझे लगता है कि यह चीजों को बिछाने का उसका तरीका था। मैं पहले से ही एक बाहरी div का उपयोग किए बिना बाहर निकालने के बारे में सोच रहा था जैसे ऊपर आईडी = कंटेनर के साथ div, इसलिए मुझे पहली बार यह समस्या नहीं होगी लेकिन मैं यह जानना चाहता हूं कि यह एक अच्छा विचार है या नहीं।

उत्तर

2

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

तुमने कहा

अब मैं सीएसएस और स्थिति के बारे में एक बहुत कुछ पता नहीं है और मैं ऊपर स्टाइल नहीं किया।

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

+1

लेकिन वेबपृष्ठ का मौजूदा डिज़ाइन उसके घोंसले divs पर इतना निर्भर करता है। क्या मुझे उसे उन हिस्सों से अलग करने वाले वेबपृष्ठ को रिकोड करने के लिए कहा जाना चाहिए जहां मैं जीडब्ल्यूटी का उपयोग करना चाहता हूं? – Jeune

+0

जीडब्ल्यूटी को एक सामग्री जड़ मिलती है जहां यह सर्वोच्च शासन करता है: अलग-अलग स्थानों में यहां और वहां जीडब्ल्यूटी करने की कोई अवधारणा नहीं है। हो सकता है कि किसी और की राय अलग हो लेकिन मुझे आपके वर्तमान डिजाइन को जीडब्ल्यूटी के साथ अच्छी तरह से काम करने का कोई तरीका नहीं दिख रहा है। –

+0

मेरा मतलब था डिजाइन, ग्राफिक्स। वे हर जगह हैं जहां मैं एक जीडब्ल्यूटी विजेट रखना चाहता हूं। इस मामले में वे आईडी कंटेनर के साथ div के अंदर भी हैं। अब आप कह रहे हैं कि मुझे जीडब्ल्यूटी में अपने ग्राफिक्स को लेआउट करना चाहिए उदाहरण के लिए HTML विजेट या किसी भी तरह से setStylePrimaryName का उपयोग कर सीएसएस के माध्यम से? : डी – Jeune

2

आपके द्वारा प्रदान किए गए HTML स्निपेट के लिए एक विशिष्ट उदाहरण इस तरह कुछ होगा। FlowPanels divs हैं जो उन्हें मनमाने ढंग से चीजों को जोड़ने का समर्थन करते हैं। यदि आप जानते हैं कि दिए गए div में केवल एक विजेट होगा, तो सरलपैनल शायद एक बेहतर विकल्प है।

भले ही आप सामान्य रूप से जो करना चाहते हैं वह उस HTML को ले जाएं जिसे आप उत्पन्न करना चाहते हैं और उस विशेष DOM संरचना को आउटपुट करने के लिए जीडब्ल्यूटी कोड का निर्माण करना चाहते हैं। सरल विगेट्स से निपटने के तरीके पर एक सभ्य लेख tags first gwt है।

FlowPanel container = new FlowPanel(); 
container.setStyleName("container"); 

FlowPanel contentLeft = new FlowPanel(); 
contentLeft.setStyleName("content_left"); 
container.add(contentLeft); 

container.add(otherDivs); 


//elsewhere in your code: 
contentLeft.add(oneWidget); 
contentLeft.add(secondWidget); 
+0

हां मैंने पहले इस बारे में सोचा है, लेकिन मुझे इसके साथ कोई समस्या है, जीडब्ल्यूटी मॉड्यूल पूरे वेबपृष्ठ/इसके स्थिर हिस्सों से थोड़ी देर बाद लोड करता है, खासकर कि मैं एक आरपीसी कर रहा हूं कहते हैं। – Jeune

+0

धन्यवाद दोस्त! आपके जवाब ने मुझे बहुत परेशानी बचाई! – SexyBeast

1

आप एक डिजाइनर है जो गुणवत्ता के लेआउट कोड का उत्पादन है, तो आप इसका इस्तेमाल करना चाहिए, लेकिन केवल तभी जब आप सभी जोखिमों और संगतता समस्याओं से अवगत हैं और परवाह करने या अपने लेआउट का परीक्षण करने की क्षमता नहीं है। ।

इन सब बातों मान लिया जाये कि, मैं इस दृष्टिकोण अत्यंत कुशल खोजने ..

बस एक HTMLPanel से अपने विजेट का निर्माण और divs का उपयोग के रूप में आप केवल प्रथम श्रेणी वस्तुओं के लिए गमागमन करना चाहते हैं अपने लेआउट जब आप कार्यक्रम संबंधी जरूरत है प्रतिनिधित्व करने के लिए नियंत्रण

<g:HTMLPanel > 

      <div class="normal style classes {obfuscated.style.class}"> 
        <g:FlowPanel ui:field="programmaticPanel" stylePrimaryName="style"> 
          <g:HTMLPanel> 
            <p>CONTENT</p> 
          </g:HTMLPanel> 
        </g:FlowPanel> 
      </div> 

    </g:HTMLPanel > 

नोट करें कि आप अभी भी अपनी obfuscated शैलियों का उपयोग वेनिला divs/spans आदि के साथ कर सकते हैं या मिश्रण और मैच!

0

आप

<div id="container"> 
    <div id="content_left"> 
     <span id="qq"/> 
    </div> 
    ...other divs 
</div> 

और अपने कोड का उपयोग में बदल सकते हैं (या बदलने के लिए अपने डिजाइनर बता) अपने html: UiBinder http://www.gwtproject.org/doc/latest/DevGuideUiBinder.html

को

FlowPanel panel = new FlowPanel(); 
RootPanel.get("qq").add(panel); 
panel.add(w1); 
panel.add(w2); 
... 
0

में आपका स्वागत है समर्थन करता है, कस्टम HTML + विजेट

"यूआई देसी के साथ सहयोग करना आसान बनाता है जीर्स जो जावा स्रोत कोड से एक्सएमएल, एचटीएमएल और सीएसएस के साथ अधिक आरामदायक हैं "