Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Относительно объекта SPLongOperation в SharePoint 2007

Автор вопроса: CommunityОтветов: 3

Я использую объект SPLongOperation в своем проекте, чтобы ввести задержку при переходе на новую страницу. На встроенной странице используются стили и брендинг css по умолчанию.

Я хочу настроить дизайн этой страницы и применить собственную тему и фирменный стиль.

Подскажите, пожалуйста, как применить пользовательскую главную страницу к странице, на которой отображается вращающееся колесо SharePoint 2007 с анимированным изображением gears_an.gif.

Заранее спасибо.

  • Я не уверен, относится ли это к версии 2007, но есть еще один вариант, обеспечивающий больший контроль: ruudheemskerk.net/archive/2009/11/24/ ScottE 19.01.2012

sharepointsharepoint-apiobject-modelsharepoint-2007

Ответы

Ответ 1 · рейтинг 2 · dahlbyk

Алекс прав в том, что единственный (неподдерживаемый!) способ изменить макет страницы - это обновить gear.aspx в файловой системе каждого WFE. Обратите внимание, что это будет изменение для всей фермы, если только вы не используете копию LAYOUTS, что обычно рекомендуется, если вы решите пойти по этому пути.

Если вы действительно хотите поумничать, значения свойств операции LeadingHTML и TrailingHtml не экранируются до того, как они будут записаны в поток ответа. Вы можете использовать одно из этих свойств, чтобы написать <script> для управления DOM, вставки ссылки на таблицу стилей и т. д.

Обновление: я собрал быстрое доказательство концепции внедрения скрипта здесь.

Ответ 2 · рейтинг 2 · Magnus Johansson

Я не согласен с тем, что нужно было только изменить файлы OOB.

Вы можете решить эту проблему, не нарушая правил, разработав собственный HTTPModule. Этот HTTPModule обнаружит, обращаетесь ли вы к рассматриваемой странице, и изменит ее главную страницу в соответствии со следующим фрагментом кода:

private void page_PreInit(object sender, EventArgs e)
{
  Page page = sender as Page;
  // Do your checking/filtering here
  if (true)
  {
    page.MasterPageFile = "<whatever you have.master";
  }
}

Ответ 3 · Alex Angas

К сожалению, класс SPLongOperation запечатан, а также жестко кодирует файл Gears ASPX.

Похоже, единственный способ изменить это - отредактировать файл 12\template\layouts\gear.aspx. Обратите внимание, что это может вызвать проблемы с будущими обновлениями продукта, которые вносят изменения в этот файл.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы