Списки Sharepoint. Часть 2. Продолжение

Продолжение. Начало статьи здесь.

Теперь необходимо создать запрос для получения списка. Если Вы знакомы со структурой БД, то проще написать sql-запрос. Для этого необходимо выбрать «Укажите специальный оператор SQL или хранимую процедуру» и далее ввести нужный запрос. Для получения всех элементов списка, требуется сначала узнать идентификатор списка. Все списки хранятся в таблице Lists. Для получения идентификатора списка запрашиваем все списки портала с помощью запроса select * from Lists. Вводим запрос, нажимаем «Далее», после чего «Пробный запрос»:


Далее по имени списка в колонке tp_Title ищем нужный список, и копируем его идентификатор в колонке tp_ID. После чего нажимаем «Назад» для ввода нового запроса.  Элементы всех списков хранятся в одной таблице UserData, для их получения вводим запрос select * from UserData where tp_ListID=’4a43ed5d-b6e4-4485-8e4a-e0c163df3b18′, при этом Вам необходимо ввести свой идентификатор списка. После чего запускаем запрос и ищем в результатах, в какой колонке хранится результат. На рисунке это колонка float1:

Изменяем запрос для возвращения только значащей колонки и добавляем сортировку по возрастанию. select float1 from UserData where tp_ListID=’4a43ed5d-b6e4-4485-8e4a-e0c163df3b18′ order by float1 asc. После чего нажимаем «Готово» и «Ok» на всплывающем окне:

Далее необходимо указать какое поле из запроса необходимо использовать для показа значения, а какое для описания этого значения. Т.к. у нас только одно значение, выбираем одинаковые значения и нажимаем OK и сохраняем изменения на странице.

После этого можно увидеть промежуточный результат нашей работы на странице на сайте Sharepoint, а именно выпадающий список со значениями из списка Sharepoint:

Теперь необходимо соединить этот список с элементами страницы. Для этого временно закроем Designer во избежание конфликтов. И откроем редактирование страницы на сайте Sharepoint:

Добавляем веб-часть «Фильтр по строке запроса»:

Нажимаем ссылку на новом фильтре «Откройте область инструментов» и вводим имя параметра фильтрации:

После чего добавляем этот фильтр, как значение по умолчанию к стандартному фильтру выпадающего списка, которые мы подготовили на прошлом уроке. Для этого нажимаем стрелку вниз на фильтре, выбираем пункт «Соединения»>>«Получить значение по умолчанию»>> и далее выбираем фильтр по строке, который мы создали выше:

Далее нам необходимо скрыть стандартный фильтр, т.е. он будет существовать для использования в списках, но пользователь его видеть не будет. Значения в него будут подставляться из url, а туда попадать из asp-фильтра.

Для скрытия нажимаем туже стрелку на фильтре и далее пункт «Изменить веб-часть». В появившемся правом меню меняем на вкладке Вид значения радио-батона «Состояние хрома»  на «Свернуто».  Там же устанавливаем ширину и высоту 0:

Осталось соединить asp-фильтр и фильтр по строке. Для этого необходимо выйти из режима редактирования страницы, открыть Designer и в нем страницу на редактирование:

Необходимо поставить курсор на asp-фильтр и внизу экрана нажать на «Код», для перехода в режим кода. В результате редактор перейдет на страницу с кодом, рядом с кодом отвечающим за наш элемент, как показано на рисунке:

Выше <asp:DropDownList пишем код:

<script language=”javascript”>
function refreshElem(elem)
{
var selValue = elem.options[elem .selectedIndex].value;
var url = window.location.href;
url = url.substring(0,url.indexOf(“?”)) + “?” + “param=” + encodeURIComponent(selValue);
window.location.href = url;
}
</script>

А в сам элемент <asp:DropDownList вставляем код onchange=”javascript:refreshElem(this)”:

Сохраняем и проверяем результат на странице.

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

Понравилась статья?

Поделитесь ей с друзьями:

Есть вопросы? Задайте их через форму комментариев.
 

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *