0

一旦我添加了子布局组件,是否有自动保存?

我创建了一个子布局,如果我在页面编辑器的页面上添加它,它不会出现在那个时候。通过保存项目,它会出现在页面编辑器中。

所以,我想如果在页面上添加子布局,然后让页面自动保存。

可能吗?

===== 更新 =====

这是 CreateNewDatasource 方法的结束,它更新了渲染布局字段。

//set datasource, save and close
myItem.Editing.BeginEdit();
myDataSourceItem = myItem.Add(newName, template);
rd.Datasource = myDataSourceItem.ID.ToString();
myItem[Sitecore.FieldIDs.LayoutField] = ld.ToXml();
myItem.Editing.EndEdit();
myItem.Editing.AcceptChanges();

return myDataSourceItem;
4

2 回答 2

1

我不确定当前控制编码方式的确切问题是什么,我认为与 Sitecore 控制生命周期有关,因此需要更深入的调查。无论如何,我建议您重新考虑并使用对 Sitecore 更友好的流程来实施。

相反,您应该在通过 Page Editor 插入渲染时提示用户选择/创建数据源项。然后,用户可以选择现有项目或创建新项目。该项目将自动设置为控件的数据源,您将能够立即开始在页面编辑器中进行编辑,而无需先保存。

于 2015-03-17T01:31:00.000 回答
-1

可以对 sitecore 的 webedit.js 文件进行更改,但我不建议这样做,因为:

1) 如果您想稍后将解决方案升级到较新版本的 sitecore,您将会遇到问题。

2) 每次添加新的子布局时,都会保存整个页面。如果编辑在进行其他一些更改后决定不保存该项目,他将无法放弃他的更改。

3)我也认为 jammykam 在他的评论中所说的是真的。如果新添加的子布局不会出现在页面上,那么页面上会有一些脚本引起的javascript副作用。为避免这种情况,您可以修改您的子布局或布局,使其在 sitecore 处于页面编辑模式时不包含自定义 javascript 文件作为一种解决方法,并确定这是否可以解决问题。

于 2015-03-14T10:20:05.313 回答