如何在Sitecore自定义项目编辑器中使用保存事件?

时间:2010-09-20 16:52:41

标签: sitecore

我正在创建一个自定义项目编辑器,并使用以下博客文章作为参考,以响应内容编辑器中的“保存”事件,这样我就不需要为我创建第二个令人困惑的保存按钮用户。

http://www.markvanaalst.com/sitecore/creating-a-item-editor/

我可以将值保存到项目中,但正常的“内容”选项卡中的值也会被保存,从而覆盖我的值。我通过Firebug证实了这一点。有没有办法防止这种情况,或者确保我的保存总是在默认保存之后?

我将此作为支持票和SDN,但想知道SO社区可以提出什么。

谢谢!

1 个答案:

答案 0 :(得分:0)

尝试使用基于iframe的解决方案,该解决方案使用IFrame字段读取并保存在项目编辑器中输入的值。它需要被清理一下,感觉就像一个接口黑客,但它似乎正在工作。

在我的项目编辑器中:

jQuery(function () {
    var parentScForm = window.parent.scForm;
    parentScForm.myItemEditor = window;
});


function myGetValue(field) {
    var values = [];
    jQuery('#myForm input[@name="' + field + '"]:checked').each(function () {
        values.push(jQuery(this).val());
    });
    var value = values.join('|');
    return value;
}

在我的Iframe字段中:

function scGetFrameValue() {
    var parentScForm = window.parent.scForm;
    if (typeof (parentScForm.myItemEditor) != "undefined") {
        if (typeof (parentScForm.myItemEditor.myGetValue) != "undefined") {
            return parentScForm.myItemEditor.myGetValue("myLists");
        }
    }
    return null;
}

理论上,我可以在项目上有多个字段,这些字段以这种方式“委托”到项目编辑器 - 使用内容编辑器保存而不是试图对抗它。我对scForm“搭便车”在我的网页之间进行沟通感到有些不安 - 可以通过更好的方法咨询我们的常驻Javascript黑客。

对解决方案有何评论?

编辑:Blogged more about this solution