我一直在开发一个自定义字段,其中包含一个列表。 我必须能够在richtext编辑器中编辑列表中的选定项目。 (这是唯一缺失的部分)。
我已经从c#代码Opening Rich Text Editor in custom field of Sitecore Content Editor开始阅读有关开放的主题。 这适用于“添加”按钮,因为我必须打开RTE为空(使用默认文本...),但不能用于编辑按钮。
我的答案是:
list:edit(id=$Target)
中传递所选索引(如list:edit(id=$Target,index=$SelectedIndex)
,但我不知道如何填充$ SelectedIndex HandleMessage
方法中获取列表的索引。我能够获得所选的值 Sitecore.Context.ClientPage.ClientRequest.Form[ID of list]
,但仅此一点没有帮助,因为如果两个listitem等于,我将无法决定编辑哪一个。< / LI>
在javascript中完全打开和处理richtext编辑器。正如我在内容编辑器中看到的一些脚本,我试图这样做,但我无法理解它:
richtext editor url:
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
。我错过了一些参数吗?
一旦我能够做到这三个方法中的任何一个对我来说都是好的(我也会为新的更好的方式开放)。 提前谢谢!
的Tamas
答案 0 :(得分:0)
我能够在邮件中输入一些javascript:
list:Edit(id=$Target,index='+document.getElementById(ID of the select using $Target ).selectedIndex+')
这样我就得到了HandleMessage
中的索引。
我现在正在等待更好的解决方案。