2011-07-13 76 views
4

我有一個模板化的自定義小部件,它繼承自dijit.layout._LayoutWidget,dijit._Container和dijit._Templated,它使我的小部件原生Widget支持調整大小等。我需要的只是一個TabContainer,它的大小與widget的大小有關。這是我的小工具。Dijit Tabcontainer裏面的自定義小部件 - Tablist寬度太長

<div dojoAttachPoint="containerNode"> 
    <div dojoType="dijit.layout.TabContainer" tabPosition="top" style="width:100%;height:100%" > 
    <div dojoType="dijit.layout.ContentPane" title="tab" selected="true"> 
    hello 
    </div> 
</div> 
</div> 

一切看起來不錯,但我得到一個奇怪的TabList。 This is what I get!

我看着這個問題。小部件和TabContainer的所有部分都有正確的寬度和高度值。只有tablist的寬度很小(寬度爲50'000東西):我已經閱讀過類似的問題,比如這個:http://bugs.dojotoolkit.org/ticket/10495,但在我的例子中,所有的元素都有正確的寬度和長度。我不知道tablist如何獲得這麼長的寬度。

我也嘗試了很多添加和刪除style =「width:100%; height:100;」的方法。對於父容器及其父母。但是沒有任何配置解決了問題。

有沒有辦法解決這個問題?

+0

僅舉tabPosition =「top」和「bottom」都存在問題。但它看起來完全正確,「左」和「右」。 –

回答

1

嘗試屬性添加到您的TabContainer的:

<div dojoType="dijit.layout.TabContainer" controllerWidget="dijit.layout.TabController" ... >

http://bugs.dojotoolkit.org/ticket/10113#comment:11

+0

我有一個問題,div.nowrapTabStrip只有200px;並且下面的代碼工作得很完美:tabContainer = new TabContainer(controllerControllerWidget:TabController,style:「height:75%; width:100%;」}) – keemor

2

萬一有人正在尋找解決方案,我有同樣的問題,來到了這個問題。雖然我查看了錯誤報告,但它並不適用於我的情況,我沒有在表格中嵌入tabcontainer或將doLayout設置爲false。我嘗試設置tabcontroller,但也沒有工作。 debuggin後最後,原來你必須在你的widget提供「調整大小」的方法,並以下列方式調整裏面TabContainer的

widgetTemplate = '... ' + //Our tabcontainer declaration 
'<div dojoAttachPoint="containerNode">' + 
'<div dojoAttachPoint="widgetTab" dojoType="dijit.layout.TabContainer"' + 'style="width:100%;height:100%" >' + 
'<div dojoType="dijit.layout.ContentPane" title="tab" selected="true">hello</div></div></div>' + 
'...' //Rest Of template declaration 

//Since we are embedding widget inside template we need _WidgetsInTemplateMixin 
dojo.declare("MyWidget", [dijit._Widget, dijit._TemplatedMixin,dijit._WidgetsInTemplateMixin], { 
templateString: widgetTemplate, 
.... //Rest of functions 
resize: function(){ 
this.containerNode.widgetTab.resize() //Resize tabcontainer 
} 

}); 

希望這有助於

0

只需重寫你的CSS是這樣的:

div[class="dijitTabListWrapper dijitTabContainerTopNone dijitAlignClient"]{ 
    height: 30px !important; 
} 

@-moz-document url-prefix() { 
    div[class="dijitTabListWrapper dijitTabContainerTopNone dijitAlignClient"]{ 
    height: 31px !important; 
    } 
} 
0

如果要刪除第一個:「useMenu:假」 如果你想刪除的第二個和第三個:「useSlider:假」