加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

dojo – 自定义小部件内的Dijit Tabcontainer-Tablist宽度运行时

发布时间:2020-12-16 21:18:17 所属栏目:百科 来源:网络整理
导读:我有一个模板化的自定义小部件,它继承自dijit.layout._LayoutWidget,dijit._Container和dijit._Templated,它为我的小部件本机Widget支持调整大小等.我需要的是一个TabContainer,其大小适合小部件.这是我的小部件. div dojoAttachPoint="containerNode" div d
我有一个模板化的自定义小部件,它继承自dijit.layout._LayoutWidget,dijit._Container和dijit._Templated,它为我的小部件本机Widget支持调整大小等.我需要的是一个TabContainer,其大小适合小部件.这是我的小部件.

<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.

我调查了这个问题.窗口小部件和TabContainer的所有部分都具有正确的宽度和高度值.只有tablist有一个loooong宽度(50’000像素宽):我已经读过类似的问题,如这一个:http://bugs.dojotoolkit.org/ticket/10495,但在我的情况下,所有元素都有正确的宽度和长度.我不知道tablist如何获得这么长的宽度.

我也尝试了很多方法来添加和删除style =“width:100%; height:100;”父容器及其父容器.但没有一个配置解决了这个问题.

有没有办法解决这个问题?

解决方法

为了防止有人在寻找解决方案,我遇到了同样的问题,并提出了这个问题.虽然我查看了错误报告,但它并不适用于我的情况,我没有在表格中嵌入tabcontainer或将doLayout设置为false.我尝试设置tabcontroller,但这也不起作用.最后在debuggin之后,你必须在你的小部件中提供’resize’方法,并以下面的方式调整其中的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 
}

});

希望这可以帮助

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读