将布局编辑器添加到我们的编辑操作页面
Adding a layout editor to our edit action page
我们有一个自定义操作,它在幕后遵循一些自定义工作流逻辑,并希望为捕获到设置的数据添加布局。我能够添加一个复选框以启用与自定义操作关联的布局(这是一个可选的东西),但我似乎无法找到如何将布局编辑器添加到我们的表单?
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"))
);
这就是我现在所在的位置(最后一行被注释,因为部件名称不正确),但我觉得我缺少添加布局编辑器的一些核心概念...任何帮助将不胜感激!
经过多次实验,我发现了这一点。
添加到表格说明
_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);
});
我们有一个自定义操作,它在幕后遵循一些自定义工作流逻辑,并希望为捕获到设置的数据添加布局。我能够添加一个复选框以启用与自定义操作关联的布局(这是一个可选的东西),但我似乎无法找到如何将布局编辑器添加到我们的表单?
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"))
);
这就是我现在所在的位置(最后一行被注释,因为部件名称不正确),但我觉得我缺少添加布局编辑器的一些核心概念...任何帮助将不胜感激!
经过多次实验,我发现了这一点。 添加到表格说明
_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);
});