我知道这是一个旧帖子,但是有更好的方法可以做到这一点。这种方式要好得多,因为它将您的 js 和 CSS 文件保存在您的项目本地。我发现最好尽可能远离 12 个配置单元,并且通过添加 CSS 和 js 文件,这是可能的。
首先,您应该为自己创建一个文件夹,将 js 文件和 CSS 文件放在 C# 项目的顶层。将您的 js/CSS 文件放入此文件夹。
接下来,您将创建一个将调用您的 js 或 CSS 文件的 Constants.cs 类。这是该课程的代码。
using System;
using System.Collections.Generic;
using System.Text;
namespace myProjectSolution {
internal static class Constants
{
public const string JQuerymyjavascriptFileJS = "myProjectSolution.Resources.myjavascriptFile.js";
public const string CSSPath = "myProjectSolution.Resources.CSSPath.css";
}
}
请注意,在代码中它重新指向 Resources 文件夹。这是我在第一步中创建的额外文件夹。随心所欲地称呼它。
下一部分是将您对 js 文件/CSS 的引用添加到程序集中。
[assembly: WebResource(Constants.JQuerymyjavascriptFileJS, "text/javascript")]
[assembly: WebResource(Constants.CSSPath, "text/css")]
完成此操作后,您就可以在 WSP 项目的主 C# 类中调用和使用您的 js/CSS。
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
this.EnsureChildControls();
Page.ClientScript.RegisterClientScriptResource(this.GetType(), Constants.JQuerymyjavascriptFileJS);
}
CSS 文件有点不同
ClientScriptManager csm = Page.ClientScript();
csm.RegisterClientScriptResourse(this.GetType(), Constants.CSSPath);
HtmlLink css = new HtmlLink();
css.Href = csm.GetWebResourceUrl(this.GetType(), Constants.CSSPath);
css.Attributes.Add("type", "text/css");
css.Attributes.Add("rel", "stylesheet");
Page.Header.Controls.Add(css);
我发现这是调用 js 和 CSS 文件的最好和最可靠的方法。这就是我为所有 Web 部件加载 JavaScript 和 CSS 文件的方式。我从来没有遇到过这样做的问题。我希望这可以帮助一些遇到问题的人。SharePoint 从未让任何事情变得简单。:)