Списки 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)”:
Сохраняем и проверяем результат на странице.
В результате все элементы расположены в нужном порядке, а страница перерисовывается при изменении значения поля. При этом удобство подключения других веб-частей сохранилось за счет скрытого стандартного фильтра.
Есть вопросы? Задайте их через форму комментариев.
Добавить комментарий