Каков наилучший способ ссылки на внешнюю таблицу стилей в SharePoint? - PullRequest
1 голос
/ 30 октября 2008

У меня есть несколько пользовательских элементов управления, которые я загружаю в SharePoint, и я бы предпочел, чтобы все эти стили содержались во внешней таблице стилей. Каков наилучший способ ссылки на внешнюю таблицу стилей в CSS?

Спасибо.

Ответы [ 4 ]

1 голос
/ 30 октября 2008

Этот код гарантирует, что вы добавите только одну ссылку на таблицу стилей на страницу независимо от того, сколько у вас на ней веб-частей - один и тот же фрагмент кода можно использовать для javascript.

protected override void OnPreRender(EventArgs e)
   {
      const string stylesheet = "YourStylesheet.css";
      if (!Page.IsClientScriptBlockRegistered(stylesheet))
         {
         Page.RegisterClientScriptBlock(stylesheet, 
            string.Format(@"<link href=""{0}/{1}"" rel=""stylesheet""/>",
                         this.ClassResourcePath, stylesheet));
         }
       base.OnPreRender(e);
   }
1 голос
/ 30 октября 2008

Разве вы не можете добавить в голову? Если нет, можете ли вы this.page.header.controls.add?

0 голосов
/ 30 октября 2008

Если вы используете MOSS, вы можете полностью удалить эту конфигурацию из своего кода, используя встроенное в SharePoint свойство альтернативной таблицы стилей.

  1. Раскройте меню Действия сайта и выберите Настройки сайта-> Изменить все настройки сайта .
  2. На открывшейся странице щелкните ссылку Master page в столбце Look and Feel .
  3. На странице Настройки главной страницы сайта прокрутите вниз до раздела Alternate CSS URL . Выберите переключатель Указать файл CSS ... и введите URL своей таблицы стилей. Я поместил свой в Библиотеку стилей на домашнем сайте, но вы можете поместить ее там, где хотите.
  4. При желании вы можете установить его для всех дочерних сайтов, установив флажок Сбросить все дочерние сайты для наследования этого альтернативного CSS-URL .
  5. Нажмите кнопку OK .

К сожалению, эта конфигурация недоступна для сайтов WSS. Но у объектной модели это есть. Таким образом, вы можете применить его с помощью кода как в WSS, так и в MOSS, либо в веб-части, либо через что-то вроде PowerShell.

В коде, когда у вас есть ссылка на объект SPWeb, скажем, в переменной с умным именем theWeb, вы можете просто назначить URL таблицы стилей с помощью следующего кода:
theWeb.AlternateCssUrl = "http://server/site/library/stylesheet.css"; theWeb.Update ();

0 голосов
/ 30 октября 2008

Спасибо

Я смотрел на это слишком сложно, как. Ваш ответ решил мою проблему и на самом деле будет работать намного лучше, чем метод, из которого я собирался подойти к нему.

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