我一直在研究一个包含列表的自定义字段。我必须能够在富文本编辑器中编辑列表中的选定项目。(这是唯一缺少的部分)。
我已经阅读了关于在Sitecore Content Editor 的自定义字段中从 c# 代码打开富文本编辑器中打开的主题。这适用于“添加”按钮,因为我必须打开 RTE 为空(使用默认文本......),但不适用于“编辑”按钮。
我的方法是:
- 以某种方式在编辑按钮的消息字段中
list:edit(id=$Target)
传递选定的索引(例如list:edit(id=$Target,index=$SelectedIndex)
,但我不知道如何填充 $SelectedIndex - 不知何故,在被覆盖的
HandleMessage
方法中获取列表的选定索引。我能够获得选定的值Sitecore.Context.ClientPage.ClientRequest.Form[ID of list]
,但仅此而已并没有太大帮助,因为如果两个列表项相等,我将无法决定要编辑哪一个。 完全在 javascript 中打开和处理富文本编辑器。正如我在内容编辑器中的某些脚本中看到的那样,我尝试这样做,但我无法清楚地理解它:
富文本编辑器网址:
var page = "/sitecore/shell/Controls/Rich Text Editor/EditorPage.aspx";
一些参数:
var params = "?da=core&id&ed=" + id + "&vs=1&la=en&fld=" + id + "&so&di=0&hdl=H14074466&us=sitecore%5cadmin&mo";
以及我不确定的部分:
var result = scForm.browser.showModalDialog(page + params, new Array(window), "dialogHeight:650px; dialogWidth:900px;");
这样 RTE 会按预期打开(我想我可以从 javascript 中获取选定的索引并稍后将其作为参数传递)。但是,当我单击确定时,我从 EditorPage.js saveRichText 函数中得到异常:
Cannot read property 'ownerDocument' of null
。我错过了一些参数吗?
只要我能够做到,这三种方法中的任何一种对我来说都很好(我也愿意接受新的更好的方法)。提前致谢!
塔马斯