Рис.3. Сообщение о том, что пользователь забыл вложить файл

Вложение в списки Sharepoint – очень удобная штука, ведь даже штатными средствами можно вложить сразу несколько. Но вот беда, если вложение надо сделать обязательным – тут штатные средства Sharepoint бессильны. Но и дополнительное кодирование требуется минимальное – только разместить Javascript-код.

Код выглядит вот так:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<script type="text/javascript"> 
        function PreSaveItem() 
        { 
            if(document.getElementById('idAttachmentsRow').style.display=='none') 
            { 
                alert('Не прикреплен файл. Нажмите \"Вложить файл\"'); 
                return false; 
            } 
            else 
            { 
                return true; 
            } 
        } 
    </script>

Код переопределяет функцию PreSaveItem(), которая вызывается при нажатии кнопки Сохранить при создании элемента списка. Если файл не вложили, то будет выдано сообщение о необходимости это сделать.

Разместить код можно как минимум двумя способами:
1. В веб-части на странице (быстрый)
2. С помощью Sharepoint Designer (предпочтительный)

В первом случае нужно нажать "Действия сайта" – "Изменить страницу" и добавить веб-часть "Редактор содержимого" на страницу. Разумеется, код добавить через Html-код, а не в визуальный редактор.

Во втором случае нужно открыть свойства списка и открыть для редактирования файл AddItem.aspx (или NewForm.aspx – форму для ввода нового элемента списка). Нужно нажать правой кнопкой на форму и выбрать "Изменить в расширенном режиме" (Рис.1), перейти в режим просмотра "Код". Вставить код рекомендую в контейнере (Рис.2).

Результат того, что пользователь забыл вложить файл – сообщение об ошибке на Рис.3.

Рис.1. Изменить NewForm.aspx в расширенном режиме

Рис.1. Изменить NewForm.aspx в расширенном режиме

Рис.2. Вставка кода в ASPX-страницу списка

Рис.2. Вставка кода в ASPX-страницу списка

Рис.3. Сообщение о том, что пользователь забыл вложить файл

Рис.3. Сообщение о том, что пользователь забыл вложить файл