c# - 如何在 EPiServer CMS 编辑视图中设置选定选项卡?
问题描述
我们有一个带有许多选项卡的 EPiServer(表单)编辑视图。客户要求当编辑打开编辑页面时,在特定条件下应自动选择#2 选项卡(称为“替代内容”)。我们不想重新排序选项卡。如何实现?我们正在运行 EPiServer 11。
更新:
我尝试使用 Dojo 脚本来完成此操作。EPiServer 中的结果取决于我如何设置它,在这种情况下这对我来说有点奇怪。这是文件
Web\modules\CMSDefaultTabSelector\module.config:
以下是它在 ModifyMetadata 中的调用方式:
...脚本本身 CMSDefaultTabSelector.js 如下所示:
结果如下:
结果与 EditLayoutContainer
对话框的结果
结果应该是
如果我尝试跳过此参数,我会收到错误"ctor is not a constructor"。其他布局元素只会呈现一个空选项卡、更奇怪的错误,或者您会收到其他错误消息。如果我使用require([...])
,则在每次重新加载页面时都会调用该函数,这不是我想要的。我希望仅在 ModifyMetadata 中的代码启动时才调用它。希望有人能提供帮助。
解决方案
折腾了半天,终于找到了魔法密码。由于其他人可能也想知道这是如何完成的,因此最终解决的方法如下(使用 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");
}
}
});
}
);
推荐阅读
- c# - showdialog表单问题上的任务异步数据表
- python - 在 Pandas 中使用不同的数据框查找两个日期之间的最小值
- c# - 在 Newtonsoft.Json 中将 CamelCaseText 转换为 CamelCaseNamingStrategy
- javascript - 如何使用递归计算数组中数字的实例?
- python - 根据客户对数据框中的列进行排序
- java - 数据在我的 API 中成功发送,但是在我收到响应代码和消息之前,我的手机信号被中断
- reactjs - React Hooks / Redux 和 onChange 事件
- cmake - 有没有办法在 CMake 配置中禁止“实验性”C++17?
- matlab - 一次保存多个图形
- c# - 为什么松开操纵杆时我的游戏对象会返回到某个 z 位置?