Episerver 内の PublishedContent イベントにフックしているため、ユーザーが特定のページ タイプを公開すると、いくつかのロジックが実行され (pdf の作成)、文字列値がプロパティの 1 つに保存されます (pdf へのパス)。
これは機能しており、PDF が作成され、PDF へのパスも保存されます。
しかし、私が抱えている問題は、公開が完了した後、すべてのプロパティが読み取り専用になり、別のノードをクリックしてから、編集する前にもう一度クリックする必要があることです。- これは普通のことですか、それともセーブの仕方に問題があるのでしょうか?
これは私のコードです:
public void Initialize(InitializationEngine context)
{
var events = ServiceLocator.Current.GetInstance<IContentEvents>();
events.PublishedContent += EventsPublishedContent;
}
private void EventsPublishedContent(object sender, ContentEventArgs e)
{
if (e.Content is myType)
{
var currentPage = e.Content as RatePlanPageType;
var pdfPath = businessLogic.CreatePdf(e.content);
var clone = currentPage.CreateWritableClone();
clone.Property["PdfFiles"].Value = pdfPath;
var contentRepository = ServiceLocator.Current.GetInstance<IContentRepository>();
contentRepository.Save(clone, SaveAction.Save);
}
}
これは、保存後の UI でのすべてのプロパティの外観です。
ツリー内の別のノードをクリックしてから、このノードをもう一度クリックすると、通常の状態に戻り、すべてのデータが正しく保存されます。