Блог Сергея Байдачного

Мой блог о технологиях

SharePoint 2010: Что нового? (часть 7) – XSLT

with one comment

Еще одно нововведение, которое я хотел бы рассмотреть, это поддержка двух специальных XSLT веб-частей, способных отображать данные из списков, используя XSL преобразования.

Чтобы при попытке использовать материал этого раздела, у Вас сохранилось душевное равновесие (скажу больше, здоровье), разложу все по полочкам.

Итак, в далеком 2002 году, когда на рынок появился SharePoint 2.0, для отображения списков использовалось две веб-части: ListViewWebPart и ListFormWebPart. Первая из двух веб-частей позволяла отобразить данные из списка в виде набора записей (то есть выдать все данные в списке), а вторая веб-часть использовалась для редактирования, создания или отображения отдельной записи. Данные веб-части были крайне «неповоротливые», работали с CAML и практически не давали возможностей модифицировать внешний вид списков. Конечно, с помощью CAML или в дизайнере, разработчик мог задать отображаемые поля, но этим все и ограничивалось.

С выходом SharePoint 2007, набор существующих веб-частей расширили BaseXsltDataWebPart и DataFormWebPart. Если класс BaseXsltDataWebPart описывал основные возможности веб-части, позволяющей отображать данные с использованием XSL преобразования, то его наследник – DataFormWebPart, служил именно для отображения данных из списков, принимая данные от DataSourceControl, выбираемые (обычно) с помощью CAML. Фактически веб-часть DataFormWebPart могла отображать все что угодно, принимая XSL и данные, но чаще использовалась для отображения списка данных. Для отображения отдельного элемента продолжали использовать ListFormWebPart.

Наконец, SharePoint 2010 предлагает две новые веб-части – XsltListFormWebPart и XsltListViewWebPart. Вы не поверите, но обе веб-части являются наследниками DataFormWebPart через промежуточный класс BaseXsltListWebPart. Фактически, основная идея новых веб-частей – адаптировать DataFormWebPart для отображения данных в списках. XsltListFormWebPart и XsltListViewWebPart позволяют скрыть CAML код, сосредоточившись на XSL преобразовании, обеспечив желаемое преставление элемента или всего списка.

Если Вы уже запутались, то ниже я привожу диаграмму соответствующих классов:

clip_image002

Все бы ничего, есть XsltListFormWebPart и XsltListViewWebPart, их и нужно использовать. Если Вы создаете собственные страницы, отображающие данные из списков, то все действительно так, — используйте новые веб-части. Однако, SharePoint 2010 содержит и «старый» код. Создайте сайт на основе шаблона Team Site и откройте созданный сайт в SharePoint Designer 2010. Выберите один из стандартных списков, например Announcement и откройте одну из форм отображения или редактирования отдельного элемента (например, DispForm.aspx):

clip_image004

Тут Вы без труда найдете ListFormWebPart. Это же верно и при создании собственного списка. Между тем, если Вы попробуете добавить новую форму, то тут Вы сможете найти уже DataFormWebPart. При просмотре Views (страниц, отображающих весь список), ситуация совсем иная – тут используется XsltListViewWebPart, как и положено. А вот использование XsltListFormWebPart замечено не было. Более того, я попытался найти хоть что-то об использовании XsltListFormWebPart – ничего. Попробуем разобраться сами.

Итак, работая со списками, XsltListViewWebPart используется достаточно активно, как в существующих списках, так и при создании собственного списка. Несмотря на это, Вы можете добавить экземпляр этой веб-части явно, на любую из страниц. Для этого можно использовать SharePoint Designer. Если же Вы решили использовать интерфейс SharePoint, то у Вас ничего не выйдет. Первая трудность, с которой Вы столкнетесь, — необходимость активировать доступ к XsltListViewWebPart, добавив ее в галерею веб-частей. С этим легко справиться. Но, как только Вы разместите веб-часть на странице, XsltListFormWebPart автоматически настраивается на текущий DataSource, то есть, тут же начинает отображать данные, содержащие список страниц сайта, если Вы ее добавили на обычную страницу, или данные из конкретного списка, если страница относится к списку. Поменять же список с помощью настроек веб-части – нельзя (нет такого свойства в окне свойств). Поэтому, чтобы отобразить произвольный список на произвольной странице, переходим в SharePoint Designer.

SharePoint Designer содержит целую категорию кнопок, позволяющих добавлять отображение списка с помощью XsltListViewWebPart на любую из страниц:

clip_image006

Чтобы отобразить эту категорию, откройте любую страницу и перейдите к редактированию содержимого. Воспользуйтесь вкладкой Insert, чтобы получить доступ к таким кнопкам, как:

· Data View – позволяет отобразить содержимое списка с помощью XsltListFormWebPart. Собственно говоря, эта кнопка нам и нужна;

· Related Item View – позволяет отобразить данные из связанного списка. Поскольку в SharePoint 2010 есть возможность задавать отношения между списками, — это легко сделать;

· New Item Form – создает обычную форму для создания нового элемента. При этом используется веб-часть DataFormWebPart, позволяющая задать XSL преобразование, но пришедшая из предыдущей версии SharePoint;

· Edit Item Form – создает форму для редактирования элемента;

· Display Item Form – создает форму для отображения элемента.

Нажав на Data View, Вы можете выбрать один из доступных списков и отобразить его данные на странице.

Добавив XsltListViewWebPart для отображения желаемого списка, Вы получаете мощный набор инструментов, позволяющий Вам редактировать XSL преобразование, ничего не понимая в предмете.

clip_image008

Так, при редактировании XSL преобразования становятся доступны следующие закладки:

· Design – тут можно выбрать способ представления элементов в виде списка, карточек и т. д. По умолчанию тут 8 стилей, но присутствует ссылка, позволяющая найти еще больше стилей в Интернете;

· Table – тут Вы можете добавлять столбцы в созданную таблицу и редактировать стиль таблицы, отображающей элементы;

· Options – самая интересная закладка, позволяющая задать условные выражения и формулы внутри XSL преобразования. Для этой цели тут есть две кнопки: Conditional Formatting и Formula. Благодаря Conditional Formatting, Вы можете выборочно применять тот или другой стиль к ячейке или целой строке, «разукрашивая» Вашу таблицу, как новогоднюю елку. А с помощью кнопки Formula, Вы можете создавать выражения, базирующиеся на значениях в любом из полей.

Как видите, если ранее Вы и обходились без SharePoint Designer, то теперь игнорировать этот инструмент достаточно тяжело.

Итак, с XsltListViewWebPart мы разобрались. Мне удалось найти один недостаток этой веб-части. К сожалению, она не умеет отображать календарь в режиме Calendar View. Как и раньше, для отображения календаря используется специальная веб-часть (даже не веб-часть, а объект класса, загружаемый в стандартную WebPart). Поэтому моя мечта, — разукрасить календарь в разные цвета, в зависимости от типа события, так и не сбылась (опять нужно писать код).

Выше мы говорили, что для работы с набором данных в списке используется XsltListViewWebPart, которую легко добавить с помощью Data View кнопки закладки Insert. Но, если Вы попытаетесь добавить форму создания, редактирования или отображения отдельного элемента любого из списков, используя New Item Form и аналогичные кнопки, то такой веб-части как XsltFormViewWebPart Вы не увидите. Вместо нее используется DataFormWebPart, которая полностью оправдывает себя, но тогда не ясно назначение новой веб-части. Поэтому, если Вы хотите использовать XsltFormViewWebPart, то придется писать код явно. Возможно, что-то поменяется при переходе с бета версии.

Реклама

Written by Sergiy Baydachnyy

18.03.2010 в 09:34

Опубликовано в SharePoint

Tagged with

Один ответ

Subscribe to comments with RSS.

  1. I aаm in fact ɦappy to read this webρage posts whijch contains
    plenty of vаluable data, thajks forr providing these kinds of statistics.

    Malissa

    30.04.2015 at 20:00


Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s

%d такие блоггеры, как: