0

リストを含むカスタムフィールドに取り組んでいます。リストで選択した項目をリッチテキスト エディターで編集できる必要があります。(これが唯一の欠けている部分です)。

サイトコア コンテンツ エディターのカスタム フィールドでのc# コードのオープニング リッチ テキスト エディターから開くことに関するトピックを読みました。これは、RTE を空 (デフォルトのテキストで...) で開く必要があるため、[追加] ボタンではうまく機能しますが、[編集] ボタンでは機能しません。

私のアプローチは次のとおりです。

  • どういうわけか、編集ボタンのメッセージ フィールドlist:edit(id=$Target)で、選択したインデックスを渡します (のようlist:edit(id=$Target,index=$SelectedIndex)に、しかし $SelectedIndex を設定する方法がわかりません
  • オーバーライドされたHandleMessageメソッドで、リストの選択されたindexを取得します。選択した Sitecore.Context.ClientPage.ClientRequest.Form[ID of list]を取得できますが、それだけではあまり役に立ちません.2つのリストアイテムが等しい場合、どちらを編集するかを決めることができないからです。
  • リッチテキスト エディターの開始と処理を完全に JavaScript で行います。コンテンツエディターのスクリプトで見たように、それをやろうとしましたが、はっきりと理解できません:

    リッチテキスト エディターの URL:

    var page = "/sitecore/shell/Controls/Rich Text Editor/EditorPage.aspx";

    いくつかのパラメータ:

    var params = "?da=core&id&ed=" + id + "&vs=1&la=en&fld=" + id + "&so&di=0&hdl=H14074466&us=sitecore%5cadmin&mo";

    よくわからない部分:

    var result = scForm.browser.showModalDialog(page + params, new Array(window), "dialogHeight:650px; dialogWidth:900px;");

    このようにして、RTEは期待どおりに開きます(選択したインデックスをjavascriptから取得して、後でパラメーターとして渡すことができると思います)。ただし、[OK] をクリックすると、EditorPage.js saveRichText function: から例外が発生しますCannot read property 'ownerDocument' of null。パラメータが不足していますか?

3つのアプローチのいずれかが私にとっては問題ありません(また、新しいより良いものを受け入れることができます)。前もって感謝します!

タマス

4

1 に答える 1

0

メッセージにJavaScriptを入力することができました:

list:Edit(id=$Target,index='+document.getElementById(ID of the select using $Target ).selectedIndex+')

このようにして、でインデックスを取得しましたHandleMessage

私は今、より良い解決策を待っています。

于 2012-11-13T10:39:50.400 に答える