понедельник, 30 мая 2011 г.

Sharepoint: Ошибка мастер-страницы

После редактирования мастер-страницы (как вариант, после миграции) при просмотре страницы, которая основывается на этой мастер страницы, я ловлю ошибку (на желтом экране "смерти"):
Error: The base type 'System.Web.UI.MasterPage' is not allowed for this page

Решение: глянуть web.config и проверить наличие
Если этой строчки нет, то нужно добавить.
Источник

среда, 25 мая 2011 г.

Sharepoint: Модификация мастер-страниц.

Описание проблемы.
Есть решение, содержащее шаблон узла и фичу, публикующую мастер-страницы. Определение фичи:
<Module Name="MasterPages" Url="_catalogs/masterpage" Path="MasterPages" RootWebOnly="TRUE">
  <File...

Для каких-то потребностей создается веб-приложение. В этом веб-приложении создается семейство сайтов с использование разработанного шаблона узла. На созданном сайте активируется наша фича, которая успешно размещает мастер-страницы в библиотеке мастер-страниц.
Допустим создали два веб-приложения. Мастер-страницы в библиотеке не меняем. Обновляем наше решение (в мастер-странице добавили некий элемент, фичу не переактивируем), используя stsadm -o upgradesolution. Что мы увидим?

Sharepoint 2010: Работа с офисными документами в вебе.

Буквально вчера столкнулся со странной проблемой. На самом деле это не проблема, а странность её заключается в том, что я запутался на ровном месте. :)
Смысл в том, что очень часто встречал упоминание работы (просмотр/редактирование) с офисными документами в вебе: при беглом чтении статей, при просмотре презентаций и т.д. И почему-то у меня сложилось впечатление, что этот функционал есть изначально при установки MOSS 2010. В голове кружилась фраза "Раньше для просмотра офисных документов в вебе надо было ставить WebApp, а сейчас он по-умолчанию интегрирован в Sharepoint" (такая же фигня про PerfomancePoint). Частично это фраза верна, а чистично вводит в заблуждение. В обще решил попробовать.
Может быть раньше интеграция WebApp с Sharepoint была не так проста (не знаю), но сейчас если установить Sharepoint, а после WebAp, то никаких дополнительных усилий не нужно. В большинстве случаев все работает сразу, необходимо только активировать соответствующую фичу. Вот что значит "по-умолчанию интегрирован". Но всё равно WebApp нужно скачивать и устанавливать отдельно. Я смог его скачать по подписке MSDN (искать в Servers пункт Office web apps).
К тому же, эта путаница (с работоспособностью по-умолчанию) возникла из-за Excel Services. Вообще там такая вещь: просматривать документы Excel в вебе можно и без WebAp, но чтобы их редактировать нужен WebAp. Так же меня запутали преобразователи документов (в html), это немного другое.
Вывод: хочешь работать с офисными документами в вебе, скачивай и устанавливай WebAp

Ссылки:
  1. Развертывание Office Web Apps (устанавливаемых с продуктами SharePoint 2010)
  2. Deploy Office Web Apps (Installed on SharePoint 2010 Products)
  3. "The workbook cannot be opened" Error with SharePoint Server 2010
  4. http://office.microsoft.com/ru-ru/web-apps-help/
  5. Installing Office Web Apps for SharePoint 2010
  6. Развертывание Office Web Apps (SharePoint Foundation 2010)
  7. Обзор Office Web Apps
Ссылки для отображения pdf в вебе:
  1. Open PDF File in Browser from SharePoint 2010
  2. Opening PDF Files in SharePoint 2010
  3. Adding PDF Icon or Creating a Site From Template triggers Prompt for Download In SharePoint 2010
  4. How to open PDF files in browser and set file type association icons in SharePoint 2010
  5. Sharepoint 2010 and pdf integration. Series part 1
  6. How to configure PDF iFilter for SharePoint Server 2010 or Search Server 2010

среда, 11 мая 2011 г.

Sharepoint: Валидация данных формы в режиме редактирования страницы

Ситуация:
Есть страница веб-частей. На странице расположена веб-часть с формой заполнения. На форме внедрена валидация полей (через контролы валидации). Страницу открываем в режиме редактирования, меняем её, после чего пытаемся опубликовать. Получаем ошибку:
"Эта страница содержит недопустимое содержимое или форматирование. Дополнительные 
сведения можно найти в затронутых разделах"
или
"This page contains content or formatting that is not valid. You can find more information in the affected sections."


Решение.
Скорее всего, если форма будет заполнена корректно, то такого сообщения не будет, но очень муторно каждый раз при редактировании страницы заполнять поля формы. Поэтому правильным решением будет отключать валидаторы на время редактирования страницы.
Чтобы проверить режим отображения страницы, можно воспользоваться следующими способами:
Способ 1 (найден здесь): WebPartManager wp = WebPartManager.GetCurrentWebPartManager(Page);
if(wp.DisplayMode == WebPartManager.BrowseDisplayMode){/*что-то делаем*/}
Способ 2 (найден здесь): 
if(SPContext.Current.FormContext.FormMode == SPControlMode.Display){/*что-то делаем*/}

Т.е. мы проверяем в каком режиме находится форма и прячем валидаторы на странице, если находимся в режиме редактирования (validator.Visible = false) или вообще не добавляем валидаторы на страницу (в методе protected override void CreateChildControls())

Еще статьи

2leep.com