【问题标题】:Overwrite data-dojo-props for title attribute in dijit/TitlePane覆盖 dijit/TitlePane 中标题属性的 data-dojo-props
【发布时间】:2024-04-15 11:20:01
【问题描述】:

我创建了一个 TitlePane,并希望将数据从 get 方法动态加载到 Title 属性中。截至目前,这一切都有效。然而,现在当数据被加载(4 种不同的类型)时,它们都被混合在一起了。我希望将收到的数据平均分配给整个标题(25%)。

例如:

<div id="tp2" data-dojo-type="dijit/TitlePane" data-dojo-props="title: 'I'm a TitlePane        
Too'">
Click arrow to close me.
</div> 

在此示例中,标题设置为“我也是 TitlePane”。

我希望更改标题,以便四个单词中的每一个均匀分布在窗格的标题部分。然而,做这种事情没有额外的属性。

【问题讨论】:

  • 您需要扩展标题窗格或编写自己的小部件。

标签: properties dojo positioning title pane


【解决方案1】:

使用“set”方法设置新标题。 例如:-

<div id="tp2" data-dojo-type="dijit/TitlePane" data-dojo-props="title: 'I'm a TitlePane        
Too'">
Click arrow to close me.
</div> 

//For this above example, title is replaced as follows in JS
dijit.byId('tp2').set('title','New title');

更新:如果此标题窗格是在没有 ID 的情况下动态创建的,则使用 css 查询获取小部件对象。

dijit.getEnclosingWidget(dojo.query(".dijitTitlePane")[0]).set('title','New title');

dojo.query(".dijitTitlePane") => 将给出所有标题窗格 domNode 的数组。从中选择您需要的那个。我在“0”索引处选择,即页面中的第一个标题窗格节点。 然后我得到那个 domNode 的小部件对象,然后设置标题。

【讨论】:

  • 所以实际上我用作示例的并不是我如何做到的。当获取请求通过时,我的标题窗格是在 js 文件中动态创建的。所以我会像这样 var newPane = new TitlePane({ id : idName, title: Jdata[index].PatientName, open: false }).placeAt(self.roundREC, "last");所以它放置在 html 文件中的 div 的底部。所以没有我可以使用的特定 ID...
  • 因此,在您的 JS 代码中,您将 id 设置为“idName”。所以,你有 id :) 用它来获取小部件。否则,您可以使用 css 选择器查询 --> dijit.getEnclosureWidget(dojo.query(".dijitTitlePane")[0]).set('title','New title');
  • 所以这只是给了我对标题的引用,但我需要知道如何能够将标题数据放入四列中,以便它们均匀分布。