将布局编辑器添加到我们的编辑操作页面

时间:2015-08-11 15:23:36

标签: orchardcms

我们有一个自定义操作,它遵循幕后的一些自定义工作流逻辑,并希望为捕获到设置的数据添加布局。我能够添加一个复选框来启用与自定义操作相关联的布局(它是一个可选项),但我似乎无法找到如何在表单中添加布局编辑器?

var f = shapeFactory.Form(
    Id: "ActionForm",
    _Outcomes: shapeFactory.TextBox(Id: "action-text-box", Name: "Action", Title: T("Action")),
    _HasLayout: shapeFactory.CheckBox(Id: "HasLayout", Name: "HasLayout", Title: T("Uses Layout"), Value: "true"),
    //_Layout: shapeFactory.Parts_Layout_Edit(Id: "Layout", Name: "Layout", Title: T("Layout"))
    );

这就是我现在所处的位置(最后一行被评论,因为部件名称不正确),但我觉得我缺少一些添加布局编辑器的核心概念...任何帮助将不胜感激!< / p>

1 个答案:

答案 0 :(得分:0)

经过多次实验,我发现了这一点。 添加到表单说明

_Form: shapeFactory.EditorTemplate(Id: "Form", Name: "Form", Title: T("From"), TemplateName: "Parts.Layout", Prefix: "LayoutPart",
    Model: new LayoutPartViewModel {
        LayoutEditor = layoutEditorFactory.Create("", Guid.NewGuid().ToString())
    })

然后你需要在表单页面中添加一个脚本,以便用绑定数据重新加载布局编辑器。

$(document).ready(function(){
    var layoutEditorData = JSON.parse($("[name$='.LayoutEditor.Data']").val());
    window.layoutEditor = new LayoutEditor.Editor(window.layoutEditor.config, layoutEditorData);
});