Как использовать JavaScript и CSS в WebPart? - PullRequest
0 голосов
/ 10 января 2010

Я использую SharePoint Server 2007 Enterprise с Windows Server 2008 Enterprise. Я использую шаблон портала публикации. Я занимаюсь разработкой с использованием VSTS 2008 + C # + .Net 3.5 + ASP.Net. И я хочу разработать WebPart, который ссылается на файлы CSS и JavaScript (.js). У меня вопрос: (1) как развернуть файлы css / javascript и (2) как написать ссылочный путь (например, ../../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>

Ответы [ 2 ]

2 голосов
/ 22 июля 2011

Вы можете использовать мой класс 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 голос
/ 10 января 2010

Для JavaScript есть ClientScriptManager.RegisterClientScriptInclude

Не существует эквивалентного метода для css, но вы можете:

  1. предоставить список имен классов и предложить файл css, но не включайте его самостоятельно

  2. использование встроенных ресурсов

  3. добавить элементы управления в заголовок:

(как я сделал здесь):

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 выше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...