C# 如何在Web部件中使用javascript和css?

C# 如何在Web部件中使用javascript和css?,c#,.net,visual-studio-2008,sharepoint-2007,web-parts,C#,.net,Visual Studio 2008,Sharepoint 2007,Web Parts,我正在将SharePoint Server 2007 Enterprise与Windows Server 2008 Enterprise一起使用。我正在使用发布门户模板。我正在使用VSTS2008+C++.NET3.5+ASP.Net进行开发。我想开发一个Web部件,它引用css和javascript(.js)文件。我的问题是(1)如何部署css/javascript文件,以及(2)如何从webpart编写引用路径(例如下面代码中的../../themes)以引用相关的css/javascrip

我正在将SharePoint Server 2007 Enterprise与Windows Server 2008 Enterprise一起使用。我正在使用发布门户模板。我正在使用VSTS2008+C++.NET3.5+ASP.Net进行开发。我想开发一个Web部件,它引用css和javascript(.js)文件。我的问题是(1)如何部署css/javascript文件,以及(2)如何从webpart编写引用路径(例如下面代码中的../../themes)以引用相关的css/javascript文件

顺便说一句: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>

对于javascript,有

css没有等效的方法,但您可以:

  • 提供一个类名列表,并建议一个css文件,但不要包括你自己

  • 使用

  • 将控件添加到标题:

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

    最佳实践表明,您不应该像我上面所做的那样(或在嵌入式资源中)包含css。您应该使用上面的方法1。

    对于javascript,有

    css没有等效的方法,但您可以:

  • 提供一个类名列表,并建议一个css文件,但不要包括你自己

  • 使用

  • 将控件添加到标题:

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


    最佳实践表明,您不应该像我上面所做的那样(或在嵌入式资源中)包含css。您应该使用上面的方法1。

    您可以使用我的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);
        }
    }
    

    你可以使用我的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);
        }
    }
    

    为什么我需要使用客户端脚本管理器来注册它,以便在Web部件中使用它?为什么我不能像我们在html/aspx代码中所做的那样,从相对路径引用css/javascript文件?从技术上讲,您可以。它将起作用(路径必须相对于页面)。但是如果您在多个页面中使用web部件,并且路径不同怎么办?为什么我需要使用客户端脚本管理器来注册它,以便在web部件中使用它?为什么我不能像我们在html/aspx代码中所做的那样,从相对路径引用css/javascript文件?从技术上讲,您可以。它将起作用(路径必须相对于页面)。但是,如果在多个页面中使用web部件,并且路径不同,该怎么办?