2015-09-18 43 views
0

我正在使用smartGWT,添加div我使用smartGWT提供的方法setcontent並在其中寫入HTML。使用smartGWT中的設置內容隱藏添加到佈局的div?

這樣

m_Holder = new HLayout(); 
    m_Holder.setHeight("10%"); 
    m_Holder.setWidth100(); 

    m_Holder.setContents("<div id=\"scrollable\" class=\"scrollablediv\" style=\"width: 98%;" 
        + "height: 80px; visibility: visible; overflow: auto; position: relative; border: 1px solid gray;\">" 
        + "<div id=\"legenddiv\"style=\"width: 100%; height: 10%;" 
        + " background-color: #FFFFFF;\"></div></div>"); 

現在,當我試圖掩蓋這個佈局它隱藏了佈局,但不是div的。 這些divs失去了自己的位置,走到了一切的前面。 什麼我做的是這個

Label legendLabel = new Label("<font size=\"3\"><span class=\"nobr\">Legends</span></font>"); 
    legendLabel.setHeight(12); 
    legendLabel.setWidth(80); 
    m_ToggleHandlerLayout.addMember(legendLabel); 
    m_ToggleHandlerLayout.addClickHandler(new ClickHandler() 
    { 
     @Override 
     public void onClick(ClickEvent event) 
     { 
      if(m_Holder.isVisible()) 
      { 
       m_Holder.hide(); 

      } 
      else 
      { 
       m_Holder.show(); 
      } 
     } 
    }); 

這段代碼在HTML代碼工作正常,如果我只用一個DIV隱藏的div,而不是div嵌套。 我還在想的是編寫一段JavaScript代碼,並在clickhandler本身內部使用本地方法調用它,並使用它來隱藏div外部。但是,我不想這樣做。

有任何建議。

回答

0

做這,做這樣這些本地函數的一種方式......

private final native void hideScrollableDiv() /*-{ 
    $doc.getElementById('scrollable').style.display = "none" 
}-*/; 

private final native void showScrollableDiv() /*-{ 
    $doc.getElementById('scrollable').style.display = "block" 
}-*/; 

,並呼籲他們在clickHandler

public void onClick(ClickEvent event) 
     { 
      if(m_legendHolder.isVisible()) 
      { 
       m_legendHolder.hide(); 
       hideScrollableDiv(); 
      } 
      else 
      { 
       showScrollableDiv(); 
       m_legendHolder.show(); 
      } 
     } 

不過,如果有人有其他的解決方案,這將是大。

0

嘗試使用HTMLFlow組件。

但我建議避免嘗試嵌入複雜的HTML,我從來沒有發現只有SmartGWT組件無法完成的事情。 請考慮SmartGWT組件將彌補跨瀏覽器故障。

+0

我也試過,但它給出了同樣的問題。我需要這個,因爲我正在爲我的項目使用JavaScript庫。 –

+0

你是否需要它,因爲你正在整合一些第三方小部件? 類似這樣的:https://isomorphic.atlassian.net/wiki/display/Main/Using+CKEditor+or+fckEditor+as+a+widget – claudiobosticco

+0

沒有第三方小部件。我試圖直接訪問一個Java腳本庫。我在回答中寫的代碼是我最好的選擇,但是它給了很大的麻煩,因爲我沒有對這些div的直接控制。 –