Последнее небольшое приложение использует по-максимуму всё то, что можно сделать не открывая VisualStudio =)
Приложение – опрос для экспертов. Стандартный в целом опрос, с одной только особенностью – в процессе него подсчитываются баллы и записываются в отдельный список. Для этого потребовалось с помощью Power Item Event Receiver добавить powershell-код в события ItemUpdating/ItemAdding. “Малой кровью”, а именно рабочими процессами – никак, т.к. на элементы опроса рабочие процессы попросту не навешиваются – недоработка.
DispForm того списка, куда пишутся результаты, максимально облегчена – с помощью style.display="none"; скрыто всё лишнее – меню добавления/удаления, кнопки, информация о создании – всё.
Часть данных хранится в другом списке, отображается в настоящей DispForm с помощью связки через переменную в адресной строке:
Создаем новый элемент в связанном списке
С помощью переменной в строке URL делаем привязку. Главное, чтобы пользователь её не поменял =)
В целом страница-анкета (так DispForm называется теперь на языке заказчика) выглядит вполне компактно:
Заметил интересную особенность: если в ссылке на страницу, где следует выполнить какое-то действие <a href …> присутствует “onclick="javascript:this.href = unescapeProperly(escape(this.href)); GoToLink(this); return false;" target="_self" то после окончания действия (нажатия ОК или Отмена) нас вернет на исходную страницу. Удобно, но загвоздка в одном - если у исходной страницы в URL присутствует Source – то идет возврат на него.
Помог вот этот топик форума: http://www.gotdotnet.ru/forums/5/119622/
“В SharePoint есть уже встроенный javascript, для организации передачи Source. Так что надо просто его использовать. Для этого оформляйте ссылку так:
<a href="url" onclick="javascript:GoToLink(this); return false;" target="_self">Link title</a>
Только чтобы это заработало необходимо, чтобы на странице было описание javascript функции GetSource, которая почему-то не описана в файлах javascript'ов SharePoint. Так что Вам придется на страницу добавить еще и вот такой кусок:
<SCRIPT type="text/javascript">
function GetSource(defaultSource)
{
return escapeProperly(STSPageUrlValidation(window.location.href));
}
</SCRIPT>”
Комментариев нет:
Отправить комментарий