0

サブレイアウト コンポーネントを追加したら自動保存する方法はありますか?

サブレイアウトを 1 つ作成しましたが、ページ エディターでページに追加すると、その時点では表示されません。アイテムを保存すると、ページ エディターに表示されます。

そこで、サブレイアウトがページに追加されている場合は、ページを自動保存するようにしたいと思います。

出来ますか?

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

これで CreateNewDatasource メソッドが終了し、Rendering Layout フィールドが更新されます。

//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 に適したプロセスを使用して実装することをお勧めします。

代わりに、ページ エディターを介してレンダリングを挿入するときに、データソース アイテムの選択/作成をユーザーに促す必要があります。その後、ユーザーは既存のアイテムを選択するか、新しいアイテムを作成できます。アイテムはコントロールのデータソースとして自動的に設定され、最初に保存しなくてもページ エディターですぐに編集を開始できます。

于 2015-03-17T01:31:00.000 に答える
-1

sitecore の webedit.js ファイルを変更することは可能ですが、次の理由からお勧めしません。

1) 後でソリューションをより新しいバージョンの Sitecore にアップグレードする場合、問題が発生します。

2) 新しいサブレイアウトを追加するたびに、ページ全体が保存されます。編集者は、他の変更を行った後にアイテムを保存しないことにした場合、変更を破棄することはできません。

3) また、ジャミーカムがコメントで言ったことは本当だと思います。新しく追加されたサブレイアウトがページに表示されない場合、ページ上のスクリプトが原因で JavaScript の副作用が発生します。これを回避するには、回避策として sitecore が pageedit モードのときにカスタム JavaScript ファイルを含めないようにサブレイアウトまたはレイアウトを変更し、これで問題が解決するかどうかを調べることができます。

于 2015-03-14T10:20:05.313 に答える