0

我一直在研究一个包含列表的自定义字段。我必须能够在富文本编辑器中编辑列表中的选定项目。(这是唯一缺少的部分)。

我已经阅读了关于在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。我错过了一些参数吗?

只要我能够做到,这三种方法中的任何一种对我来说都很好(我也愿意接受新的更好的方法)。提前致谢!

塔马斯

4

1 回答 1

0

我能够在消息中输入一些 javascript:

list:Edit(id=$Target,index='+document.getElementById(ID of the select using $Target ).selectedIndex+')

这样我就得到了索引HandleMessage

我现在正在等待更好的解决方案。

于 2012-11-13T10:39:50.400 回答