Sitecore 8,MVC,体验编辑器:如何在使用字段编辑器按钮后进行渲染刷新

Eri*_*son 21 sitecore sitecore-mvc sitecore8

我们有一个渲染列出当前项目中TreeSelect中的选定项目.我们称之为"标签"(1)

我们在组件中添加了一个Field Editor按钮,让编辑器更改所选项.(2)(如例如添加自定义组件所述)

当编辑器单击(2)编辑器窗口(3)时,它将在对话框中打开.编辑器可以使用TreeSelect选择不同的项目(在我们的例子中称为标签).

当编辑器按下ok按钮(4)时,将设置值.

现在来问题:

当编辑器按下保存按钮时,这些值实际上是在它们被存储时设置的,但我们希望页面(1)上的列表在编辑器按下确定按钮(4)时立即反映设置项目,即在实际需要之前保存整个项目.

我们如何实现这一目标?

(我与Sitecore支持联系,但到目前为止我还没有得到任何答案...)

截图

更新 经过与支持人员的大量对话后,我们仍然没有有用的解决方案.

我们尝试将其转换为显示链接的字段渲染器.有用的是:

  • 在弹出的字段编辑器中编辑后,该字段会更新.(但...)
  • 第一次加载页面时看起来不错.
  • 您可以使用命令编辑WebEdit按钮来编辑字段并将其作为自定义按钮添加到字段中(注册<command name="webedit:fieldeditor" type="Sitecore.Shell.Applications.WebEdit.Commands.FieldEditor, Sitecore.Client"/>并设置单击按钮webedit:fieldeditor(command={3473DDA1-2983-493C-AF7A-054C75AA7AD3},fields=NameOfField指向guelf指向其自身的位置,并在其上设置"图标".)

什么不起作用是:

  • 该字段由原始值更新,而不是我想要显示的内容.涉及服务器代码,但不涉及html代码的呈现.
  • 当我想在字段编辑器中编辑值时,发送到字段编辑器的值不是原始值,而是实际显示在页面上的值.(我猜这可以用某种方式解决)

支持的问题变成了一个功能请求,让服务器参与渲染字段,而不仅仅是向JavaScript发送新值来更新它.服务器执行第一次渲染,因此当它已经参与更新时,应该允许它在以下时间进行渲染.

我们决定现在不花更多的时间在这上面(我们还有其他事情要做.)并且编辑经验不好,因为在编辑器实际保存项目之前,字段不会更新.

我们仍然没有适合这个问题的解决方案.如果你想继续努力并希望引用我的问题,那就是439059.

小智 1

这在这里可能没用。我已经在普通网站中完成了此操作,但没有在 Sitecore 中完成。但是,有一种可能性......

在这种情况下,您可以将回调函数传递给子弹出窗口。此回调将导致调用者/父窗口重新读取/重新加载子窗口刚刚更新的信息。

示例:用户按 (2) 打开编辑器窗口 (3)(编辑器窗口打开,回调函数作为参数传递) 用户按“确定”按钮 (4)。“确定”按钮事件处理程序更新更改,然后调用回调函数重新加载现在更新的信息,并关闭弹出窗口。弹出窗口关闭后,父窗口现在显示弹出窗口/编辑器刚刚更新的信息。

这需要一些客户端 javascript (jquery) 开发,但通常是可行的。