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

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

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

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

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


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


Ответы (3)


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

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

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

person dahlbyk    schedule 03.07.2009

Я не согласен с тем, что нужно было только изменить файлы 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";
  }
}
person Magnus Johansson    schedule 07.07.2009
comment
За исключением того, что SPLongOperation просто записывает непосредственно в поток ответов, вообще не обрабатывая иерархию master/control главной страницы. HttpModule обычно является вариантом, но я не думаю, что здесь он поможет. - person dahlbyk; 10.07.2009

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

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

person Alex Angas    schedule 03.07.2009