1

Tridionリボンツールバーをカスタマイズしてボタンを追加しています。.NET ASPXページ内のボタンやドロップダウンなどのTridionコントロールにアクセスするにはどうすればよいですか?

4

2 に答える 2

4

あなたの質問は、あなたが何を達成しようとしているのかについて少し曖昧です。リボンツールバーにボタンを追加するために、ASPXページは必要ありません。

ただし、リボンボタンがTridionコントロールを使用するポップアップウィンドウを開いている場合は、Tridion.Web.UI名前空間のインポートから開始する必要があります。

ASPXページに次を追加できます。

<%@ Import Namespace="Tridion.Web.UI" %>
<%@ Register TagPrefix="ui" Namespace="Tridion.Web.UI.Editors.CME.Controls" Assembly="Tridion.Web.UI.Editors.CME" %>

ASPXページの先頭で、tridionmanagerコントロールについて言及する必要があります。

<cc:tridionmanager runat="server" editor="ExampleEditor" isstandaloneview="true">
    <dependencies runat="server">       
        <dependency runat="server">Tridion.Web.UI.Editors.CME</dependency>
        <dependency runat="server">Tridion.Web.UI.Editors.CME.Controls</dependency>
    </dependencies>
</cc:tridionmanager>

そして、あなたはあなたのページのコントロールを使うことができます。名前空間参照を忘れないようにしてください

xmlns:c="http://www.sdltridion.com/web/ui/controls"

次に、背後にあるコードをTridionビュー、たとえばTridion.Web.UI.Editors.CME.Views.Popups.PopupViewから拡張する必要があります。

using Tridion.Web.UI.Core;
using Tridion.Web.UI.Controls;
using Tridion.Web.UI.Core.Controls;
using Tridion.Web.UI.Editors.CME.Views.Popups;

namespace Extensions.Example.Views
{
    [ControlResources("Extensions.Example.Views.ExampleDialog")]
    [ControlResourcesDependency(typeof(Stack))]
    public class ExampleDialog : PopupView
    {
    }
}

Tridionコントロールの再利用に関するサポートレベルについては、すべて可能ですが、確かではありません。私の知る限り、これらはパブリックAPIの一部ではなく、どこにも文書化されていません(.. \ Tridion \ web \ WebUI \ Editors \ CME \ ViewsディレクトリのASPXページを見ることができますが、とにかくほとんど存在しないものの背後にあるコードの例はありません)。したがって、ここで.NETを使用する場合は、既存のコントロールとASPXページを再利用しないことを実際にお勧めします。その場合は、独自のコントロールを使用してください。これらのコントロールがTridionCMSにアクセスする必要がある場合は、そのためのコアサービスを使用する必要があります。

もちろん、既存のビューに示されているように、JavaScriptAPIと組み合わせてTridionコントロールを使用することも可能です。ページでコントロールを使用する場合c:Button、JavaScriptコードで次のようにアクセスできます。

var p = this.properties;
var c = p.controls;
c.BtnExmpl = $controls.getControl($("#BtnID"), "Tridion.Controls.Button");

// add an event handler like this
$evt.addEventHandler(c.BtnExmpl, "click", this.getDelegate(this._onExmplClicked));
于 2012-03-27T15:45:41.927 に答える
2

この投稿はあなたを助けるかもしれませんhttp://www.tridiondeveloper.com/ribbon-item-group

エディタ自体に保存されているASPXまたはASCXの出力はキャッシュされると思いますが、CM機能を作成するための推奨される方法は、モデルに保存されているJavaScriptとバックグラウンドサービスを使用することです。オープンソースのPowerToolsを確認することをお勧めします。さらにいくつかのアイデアのプロジェクト(http://code.google.com/p/tridion-2011-power-tools/)。

于 2012-03-27T13:38:22.753 に答える