Порой возникает ситуация, когда нужно из формы элемента одного списка создать элемент другого, при этом связать их. В этой статье я расскажу метод, который как мне кажется вполне жизнеспособен.
И так что имеем:
Список «Requests» и список «Tasks»
Нам нужно сделать что бы из элемента Request можно создавать Task
Создаем в списке «Tasks» поле lookup на список «Requests»
Далее идем в список «Requests» открываем элемент и на форму присмотра (DispForm.aspx)
добавляем веб-часть списка «Tasks». Перетянув меняем местами веб-части.
Далее делаем связь между веб-частями передавая фильтр из веб-части «Requests» в «Tasks».
Еще нужно убрать возможность создавать элемент через
стандартную панель веб-части
Закрываем режим редактирования.
В итоге форма выглядит так
Во второй части статьи я расскажу как получать id текущего элемента и записывать в новый элемент для связи.
Список «Requests» и список «Tasks»
Нам нужно сделать что бы из элемента Request можно создавать Task
Создаем в списке «Tasks» поле lookup на список «Requests»
Далее идем в список «Requests» открываем элемент и на форму присмотра (DispForm.aspx)
добавляем веб-часть списка «Tasks». Перетянув меняем местами веб-части.
Далее делаем связь между веб-частями передавая фильтр из веб-части «Requests» в «Tasks».
Добавим еще веб-часть «Редактор скриптов» и в него добавим
скрип который будет открывать страницу создания нового элемента в диалоговом
окне, при этом будет передавать Source
который в дальнейшем нам понадобится. При использовании, нужно поменять URL
страницы создания элемента Tasks.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | <div> <button class= "btn btn-default" onclick= "openInDialog()" type= "button" > <span aria-hidden= "true" class= "glyphicon glyphicon-plus" ></span> Add Task </button> </div> <script type= "text/javascript" > function openInDialog() { var pageUrl = "/test/Lists/Tasks/NewForm.aspx?&Source=" + document.URL // изменить на адрес страницы требуемого списка console.log(pageUrl) var needCallbackFunction = true ; var options = { url: pageUrl, width: 650, height: 650, allowMaximize: true , showClose: true , dialogReturnValueCallback : dialogClosed }; SP.SOD.execute( 'sp.ui.dialog.js' , 'SP.UI.ModalDialog.showModalDialog' , options); }; function dialogClosed(dialogResult, returnValue) { console.log(dialogResult + " " + returnValue) location.reload(); }; </script> |
Закрываем режим редактирования.
В итоге форма выглядит так
Во второй части статьи я расскажу как получать id текущего элемента и записывать в новый элемент для связи.
Комментариев нет:
Отправить комментарий