如何在WebPart中使用javascript和css?

时间:2010-01-10 16:48:25

标签: c# .net visual-studio-2008 sharepoint-2007 web-parts

我在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>

2 个答案:

答案 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没有等效方法,但您可以:

  1. 提供一个类名列表,并建议一个css文件,但不要自己包含

  2. 使用embedded resources

  3. 向标题添加控件:

  4. (正如我在这里所做的那样):

    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。