我们有一个带有许多标签的EPiServer(表单)编辑视图。客户要求在编辑器打开编辑页面时,在某些情况下应自动选择#2标签(称为“替代内容”)。我们不想重新排列标签。如何做到这一点?我们正在运行EPiServer 11。
更新:
我尝试使用Dojo脚本来完成此任务。 EPiServer中的结果取决于我的设置方式,在这种情况下,这对我来说有点奇怪。这是文件
Web \ modules \ CMSDefaultTabSelector \ module.config :
这是在ModifyMetadata中调用它的方式:
...以及脚本本身CMSDefaultTabSelector.js如下所示:
结果取决于您是否发送EditLayoutContainer,Dialog或完全跳过它(应以 外观的方式),如下所示:
EditLayoutContainer的结果
带有对话框的结果
结果应为
如果我尝试跳过此参数,则会收到错误“ ctor不是构造函数” 。其他布局元素只会呈现一个空白标签,怪异错误,或者您会收到其他错误消息。如果我使用require([...])
,则每次重新加载页面时都会调用该函数,这不是我想要的。我希望仅在ModifyMetadata中的代码启动时才调用它。希望有人可以提供帮助。
答案 0 :(得分:2)
摆弄了一段时间后,我终于找到了魔术代码。由于其他人也可能想知道这是如何完成的,因此这是最终(使用Dojo)解决的方法:
define([
"dojo/_base/declare",
"epi/shell/layout/SimpleContainer"
],
function (
declare,
SimpleContainer
)
{
return declare([SimpleContainer], {
//constructor: function () {},
postCreate: function () { /* PostCreate fires too soon, and the tab strip is not completely rendered */ },
startup: function () {
// Use Jquery to select the tab we manually want to change to, and click it:
var tabElement = $("div.dijitContentPane span.tabLabel:contains('Additional content')");
if ($(tabElement).length) {
$(tabElement).trigger("click");
}
}
});
}
);