Лучший отвечающий
Добавление элемента в связанный список SharePoint 2013 с автоматической привязкой к родительскому элементу

Вопрос
-
Подскажите, пожалуйста, решение для: "Добавление элемента в связанный список SharePoint 2013 с автоматической привязкой к родительскому элементу". Другими словами, на форме добавления или редактирования элемента родительского списка должна быть кнопка для добавления элементов дочернего списка, в котором лукап-поле уже заполнено.18 сентября 2013 г. 12:18
Ответы
-
Решение подобной проблемы сводиться к добавлению своей кнопки на форму просмотра элемента.
Кнопка должна передавать ID элемента на форму создания.
Например если есть необходимость создать задачу по проекту, то форма создания задачи должна открываться по адресу
/tasklist/newform.aspx?projID=1.
На форме создания этот параметр надо обработать. И соответственно выбрать на форме проект с ID=1.
У меня для подстановки поля используется примерно такой код (подключение jquery обязательно):
<script> $(document).ready(function(){ var qs = location.search.substring(1, location.search.length); var args = qs.split("="); var val = args[1].split("&")[0]; var browser = navigator.appName; if(browser == "Microsoft Internet Explorer") { choicesText = $("input[Title='Название поля подстановки']").attr("choices"); var text=""; choices = choicesText.split("|"); for (i = 1; i < choices.length; i = i + 2) { if (choices[i] == val) { text = choices[i - 1]; } } hiddenInput = $("input[title='Название поля подстановки']").attr("optHid"); $("input[id='" + hiddenInput +"']").attr("value",val) $("input[Title='Название поля подстановки']").val(text); } else { var lookupField=$("[Title='Название поля подстановки'] [value='"+val+"']"); $(lookupField).attr("selected", "selected"); } }); </script>
Сама кнопка (на форме просмотра родительского элемента) выглядит вот так:
var qs = location.search.substring(1, location.search.length); var args = qs.split("="); var val = args[1].split("&")[0]; var options = { url: '/Lists/taskList/NewForm.aspx?lookupID='+val }; </script> <input type="button" onclick="javascript:SP.UI.ModalDialog.showModalDialog(options)" value="Создать новый элемент"></input >
- Изменено Чернявский Алексей Владимирович 23 сентября 2013 г. 7:41
- Предложено в качестве ответа Иван ПродановMicrosoft contingent staff, Moderator 23 сентября 2013 г. 8:31
- Помечено в качестве ответа Иван ПродановMicrosoft contingent staff, Moderator 24 сентября 2013 г. 6:11
23 сентября 2013 г. 7:36
Все ответы
-
Добрый день!
к сожалению по 2013 с ходу не скажу, но по 2010 Master Detail in Sharepoint
или Отображение на форме связанных списков (метериал похож)
- Изменено Kaplin VladimirModerator 19 сентября 2013 г. 12:51
19 сентября 2013 г. 12:48Модератор -
Если я вас правильно понял, то вы хотите открыть форму просмотра какого-то элемента. На этой форме нажать на кнопку и создать новый элемент в другом списке. Где на форме создания сразу будет заполнено lookup-поле. Я так понял?
19 сентября 2013 г. 14:28 -
Если я вас правильно понял, то вы хотите открыть форму просмотра какого-то элемента. На этой форме нажать на кнопку и создать новый элемент в другом списке. Где на форме создания сразу будет заполнено lookup-поле. Я так понял?
Да, в общем правильно20 сентября 2013 г. 11:17 -
Добрый день!
к сожалению по 2013 с ходу не скажу, но по 2010 Master Detail in Sharepoint
или Отображение на форме связанных списков (метериал похож)
В 2013-м такое решение не работает!20 сентября 2013 г. 11:28 -
Решение подобной проблемы сводиться к добавлению своей кнопки на форму просмотра элемента.
Кнопка должна передавать ID элемента на форму создания.
Например если есть необходимость создать задачу по проекту, то форма создания задачи должна открываться по адресу
/tasklist/newform.aspx?projID=1.
На форме создания этот параметр надо обработать. И соответственно выбрать на форме проект с ID=1.
У меня для подстановки поля используется примерно такой код (подключение jquery обязательно):
<script> $(document).ready(function(){ var qs = location.search.substring(1, location.search.length); var args = qs.split("="); var val = args[1].split("&")[0]; var browser = navigator.appName; if(browser == "Microsoft Internet Explorer") { choicesText = $("input[Title='Название поля подстановки']").attr("choices"); var text=""; choices = choicesText.split("|"); for (i = 1; i < choices.length; i = i + 2) { if (choices[i] == val) { text = choices[i - 1]; } } hiddenInput = $("input[title='Название поля подстановки']").attr("optHid"); $("input[id='" + hiddenInput +"']").attr("value",val) $("input[Title='Название поля подстановки']").val(text); } else { var lookupField=$("[Title='Название поля подстановки'] [value='"+val+"']"); $(lookupField).attr("selected", "selected"); } }); </script>
Сама кнопка (на форме просмотра родительского элемента) выглядит вот так:
var qs = location.search.substring(1, location.search.length); var args = qs.split("="); var val = args[1].split("&")[0]; var options = { url: '/Lists/taskList/NewForm.aspx?lookupID='+val }; </script> <input type="button" onclick="javascript:SP.UI.ModalDialog.showModalDialog(options)" value="Создать новый элемент"></input >
- Изменено Чернявский Алексей Владимирович 23 сентября 2013 г. 7:41
- Предложено в качестве ответа Иван ПродановMicrosoft contingent staff, Moderator 23 сентября 2013 г. 8:31
- Помечено в качестве ответа Иван ПродановMicrosoft contingent staff, Moderator 24 сентября 2013 г. 6:11
23 сентября 2013 г. 7:36