1

Sitecore Workboxの「プレビュー」は、別のタブに表示する次のコードを使用します。

 protected void Preview(string id, string language, string version)
    {
        ...
        Context.ClientPage.SendMessage((object)this, "item:preview(id=" + id + ",language=" + language + ",version=" + version + ")");
    }

ポップアップでプレビュー表示したい。私はすでにワークボックスをオーバーライドしており、このメソッドを変更するだけです。どうすればこれを変更できますか?別のことを試しましたが、何もうまくいきませんでした...

4

2 に答える 2

2

App_Config \ Commands.configで、クラスにitem:previewマップされていることがわかりますSitecore.Shell.Framework.Commands.PreviewItem

PreviewItemクラスに基づいて独自のコマンドを作成し、item:previewコマンドの代わりに使用できます。

PreviewItemクラスのコードを反映すると、実行されるRunメソッドが表示されます。

SheerResponse.Eval("window.open('" + (object) webSiteUrl + "', '_blank')");

このメソッドの最後に。これにより、プレビューが新しいタブに読み込まれます。このロジックを、オーバーライドされたクラスで必要なものに変更します。

于 2013-03-12T12:52:32.167 に答える
0

答えてくれてありがとう、本当に助かりました。実際、私は新しいタブでコンテンツエディタを開きたかったのです。プレビュー、開く、内部で何が起こっているのかを理解するなど、いくつかのコマンドを反映しました。

そして、次のようにワークボックスの「開く」mwthodをオーバーライドして、新しいタブでコンテンツエディタアイテムを開きました。

...
UrlString urlString = new UrlString("/sitecore/shell/Applications/Content%20Editor");

        urlString.Append("id", id);
        urlString.Append("vs", version);
        urlString.Append("ro", sectionId);
        urlString.Append("la", language);
        urlString.Append("fo", id);

        SheerResponse.Eval("window.open('" + (object)urlString + "', '_blank')");
...

できます!!!!!再度、感謝します。

于 2013-03-13T10:48:22.763 に答える