Sitecore自动保存如果页面上添加了子布局

时间:2015-03-13 18:18:32

标签: save sitecore components sublayout

一旦我添加了一个子布局组件,有没有进行自动保存?

我创建了一个子布局,如果我在页面编辑器中将其添加到页面上,那么它就不会出现。通过保存项目,它将显示在页面编辑器上。

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

有可能吗?

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

这是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;

2 个答案:

答案 0 :(得分:1)

我不确定当前控制编码方式的确切问题是什么,我假设是与Sitecore控制生命周期有关,因此需要更深入的调查。在任何情况下,我建议您使用更多Sitecore友好程序重新思考和实施。

相反,你应该Prompt the User to Select/Create Datasource Item when inserting Rendering via Page Editor。然后,用户可以选择现有项目或创建新项目。该项目将自动设置为您的控件的数据源,您将能够立即开始在页面编辑器中进行编辑,而无需先保存。

答案 1 :(得分:-1)

可以对sitecore的webedit.js文件进行更改,但我不推荐它,因为:

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

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

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