我在Windows Server 2008 Enterprise中使用SharePoint Server 2007 Enterprise。我正在使用发布门户模板。我正在使用VSTS 2008 + C#+ .Net 3.5 + ASP.Net进行开发。我想开发一个WebPart,它引用css和javascript(.js)文件。我的问题是(1)如何部署css / javascript文件和(2)如何从webpart编写参考路径(例如,我的代码中的../../themes)来引用相关的css / javascript文件?
BTW:现有的css / javascript / Webpart代码来自现有的aspx代码,我正在将aspx代码迁移到Webpart。该代码适用于aspx。目前我的代码看起来像这样,
<link type="text/css" href="../../themes/test.css" rel="stylesheet" />
<script type="text/javascript" src="../../test.js"></script>
答案 0 :(得分:2)
您可以使用我的HtmlHelper类。
class HtmlHelper
{
public static void IncludeScript(Page page, String key, String location)
{
if (!page.ClientScript.IsClientScriptIncludeRegistered(key))
page.ClientScript.RegisterClientScriptInclude(key, location);
}
public static void IncludeCSS(Page page, String src)
{
HtmlLink css = new HtmlLink();
css.Href = src;
css.Attributes["rel"] = "stylesheet";
css.Attributes["type"] = "text/css";
css.Attributes["media"] = "all";
page.Header.Controls.Add(css);
}
}
答案 1 :(得分:1)
对于javascript,有ClientScriptManager.RegisterClientScriptInclude
css没有等效方法,但您可以:
提供一个类名列表,并建议一个css文件,但不要自己包含
向标题添加控件:
(正如我在这里所做的那样):
HtmlLink link = new HtmlLink();
link.Href = "Cases/EditStyles.css";
link.Attributes.Add("type", "text/css");
link.Attributes.Add("rel", "stylesheet");
this.Page.Header.Controls.Add(link);
最佳实践表明,您不应该像我上面(或在嵌入式资源中)那样包含css。你应该使用上面的方法1。