sitecore的treeviewex如何与javascripts相关联?

时间:2015-11-18 12:02:00

标签: javascript treeview sitecore controls

我目前正在尝试在sitecore中创建一个与treeviewex类似的控件。

但我不清楚我将如何包括像sitecore这样的javascripts。

如果有人能指出我正确的方向,我会非常感激,谢谢你:)

/罗宾

1 个答案:

答案 0 :(得分:1)

您可以创建自己的处理器并将其添加到renderContentEditor管道中。您可以在此博文中找到有关Adding custom Javascript and Stylesheets in the Content Editor

的信息和代码

创建一个新的处理器类:

public class InjectScripts
{
    private const string JavascriptTag = "<script src=\"{0}\"></script>";
    private const string StylesheetLinkTag = "<link href=\"{0}\" rel=\"stylesheet\" />";

    public void Process(PipelineArgs args)
    {
        AddControls(JavascriptTag, "CustomContentEditorJavascript");
        AddControls(StylesheetLinkTag, "CustomContentEditorStylesheets");
    }

    private void AddControls(string resourceTag, string configKey)
    {
        Assert.IsNotNullOrEmpty(configKey, "Content Editor resource config key cannot be null");

        string resources = Sitecore.Configuration.Settings.GetSetting(configKey);

        if (String.IsNullOrEmpty(resources))
            return;

        foreach (var resource in resources.Split('|'))
        {
            Sitecore.Context.Page.Page.Header.Controls.Add((Control)new LiteralControl(resourceTag.FormatWith(resource)));
        }
    }
}

然后在处理器中修补:

<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/">
   <sitecore>
     <pipelines>
       <renderContentEditor>
         <processor patch:before="*[1]" type="HideDependentFields.SC.Pipelines.RenderContentEditor.InjectScripts, HideDependentFields.Types" />
       </renderContentEditor>
     </pipelines>
   </sitecore>
</configuration>