How do I utilize the save event in a Sitecore custom Item Editor?
我正在创建一个自定义项目编辑器,并使用以下博客文章作为响应内容编辑器中的"保存"事件的参考,这样我就不需要为我创建第二个令人困惑的保存按钮用户。
http://www.markvanaalst.com/sitecore/creating-a-item-editor/
我可以将我的值保存到项目中,但正常内容选项卡中的值也会被保存,覆盖我的值。我已经通过 Firebug 确认了这一点。有没有办法防止这种情况发生,或者确保我的保存总是在默认保存之后?
我在 SDN 上也有这个支持票,但我想知道 SO 社区能想出什么。
谢谢!
尝试了基于 iframe 的解决方案,该解决方案使用 IFrame 字段来读取和保存在我的项目编辑器中输入的值。它需要稍微清理一下,感觉就像是一个界面黑客,但它目前似乎正在工作。
在我的项目编辑器中:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | 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 字段中:
1 2 3 4 5 6 7 8 9 | 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 黑客咨询更好的方法。
对解决方案有什么意见吗?
编辑:博客上有关此解决方案的更多信息