Спрашивающий
Проблема с Lookup полями. Работают, а потом перестают работать.

Общие обсуждения
-
Здравствуйте.
Подскажите, пожалуйста, в чем может быть дело. Создал в проекте несколько списков (Custom List). В некоторых из них есть поля Lookup, которые ссылаются на другие, созданные мной, списки. Так вот ни с того ни с сего у меня в каком-либо из списков может перестать работать поле Lookup. Т.е. просто данные перестают в нем сохраняться. Над проектом я продолжаю работать. Тестирую, дополняю, раздел Features я не трогаю. Там как автоматически создаются фичи, так и оставляю. Я думал что с фичами дело. Пытался порядок следования списков в фичах менять, но результат не понятен и проблема не решается.
Вот например есть у меня список TaskList. Вроде проект почти закончен, но при тестировании вижу, что Lookup поля остаются пустыми, хотя данные в них записываются и раньше работало. После долгого поиска ошибки, решил удалить и заново создать такой список. В итоге данные стали сохраняться, но перестало работать Lookup поле в другом списке под названием ListTitles. Его поле Project, которое ссылается на список ListProjects поле ProjectNumber остаётся пустым при добавлении элемента.
Вот недоумеваю и не могу понять где связь вообще.
Когда списки я создаю, выбираю Default (Custom List). Visual Studio 2015, SharePoint 2013.
- Изменен тип Иван ПродановMicrosoft contingent staff, Moderator 4 октября 2017 г. 5:48
8 сентября 2017 г. 7:00
Все ответы
-
Попробуйте для начала пересоздать 'проблемный' Lookup.
Когда списки я создаю, выбираю Default (Custom List). Visual Studio 2015, SharePoint 2013.
______________________________
Не совсем понятно Lookup делайте через C#?
8 сентября 2017 г. 7:06 -
Попробуйте для начала пересоздать 'проблемный' Lookup.
Когда списки я создаю, выбираю Default (Custom List). Visual Studio 2015, SharePoint 2013.
______________________________
Не совсем понятно Lookup делайте через C#?
Пересоздавал поля, ни к чему не приводило.
В visual studio создаю список и редактирую его.
- Изменено Evgueny Fyodorov 8 сентября 2017 г. 8:12
8 сентября 2017 г. 8:10 -
Возможно тебе эта статья поможет.8 сентября 2017 г. 8:15
-
Возможно тебе эта статья поможет.
нет. Эта статья о том, как добавить в список Lookup поле. А моя проблема в том, что абсолютно рабочий список с Lookup полем спустя какое-то время перестаёт работать. Т.е. списки не трогаю, работаю в проекте над совершенно другими задачами и в рабочем списке перестаёт работать Lookup поле.8 сентября 2017 г. 8:32 -
Возможно тебе эта статья поможет.
нет. Эта статья о том, как добавить в список Lookup поле. А моя проблема в том, что абсолютно рабочий список с Lookup полем спустя какое-то время перестаёт работать. Т.е. списки не трогаю, работаю в проекте над совершенно другими задачами и в рабочем списке перестаёт работать Lookup поле.
В данном случае мешает какая-то мелочь, прав хватает на список? Может вам попробовать Lookup сделать через C# (как вариант хотя бы для тестирования)?
public void BindCountry() { using (SPSite site = new SPSite(SPContext.Current.Site.Url)) { using (SPWeb web = site.OpenWeb()) { SPList list = web.Lists["Country"]; DataTable dt = list.Items.GetDataTable(); dlCountry.DataSource = dt; dlCountry.DataTextField = "Title"; dlCountry.DataValueField = "Title"; dlCountry.DataBind(); } } }
- Изменено Mikhail Zhuikov 8 сентября 2017 г. 8:38
8 сентября 2017 г. 8:37 -
Возможно тебе эта статья поможет.
нет. Эта статья о том, как добавить в список Lookup поле. А моя проблема в том, что абсолютно рабочий список с Lookup полем спустя какое-то время перестаёт работать. Т.е. списки не трогаю, работаю в проекте над совершенно другими задачами и в рабочем списке перестаёт работать Lookup поле.
В данном случае мешает какая-то мелочь, прав хватает на список? Может вам попробовать Lookup сделать через C# (как вариант хотя бы для тестирования)?
public void BindCountry() { using (SPSite site = new SPSite(SPContext.Current.Site.Url)) { using (SPWeb web = site.OpenWeb()) { SPList list = web.Lists["Country"]; DataTable dt = list.Items.GetDataTable(); dlCountry.DataSource = dt; dlCountry.DataTextField = "Title"; dlCountry.DataValueField = "Title"; dlCountry.DataBind(); } } }
Даже не знаю. В моём решении десяток списков. Многие содержат Lookup поля, ссылающиеся на другие списки из этого решения. Как этот код может мне помочь?
Прав достаточно. В решении создаю, разворачиваю на сайте, аналогичные списки работают без проблем, некоторые отваливаются.- Изменено Evgueny Fyodorov 8 сентября 2017 г. 9:15
8 сентября 2017 г. 9:13 -
Вот вроде решение проблемы подвернулось. Я подозревал что связано с Features. Только я пробовал удалять фичи и создавал заново фичу с нужным порядком загрузки списков и веб частей. Но результат был не понятный. Что-то менялось кардинально, вплоть до того, что все поля какого-либо моего списка могли не загрузиться (их просто не было у моего кастомного списка, а оставались лишь стандартные). А при перезагрузке Visual Studio, студия могла сама пересоздать все файлы Features автоматически.
В общем ближе к делу. Сейчас обратил внимание на Package, что находится под Features в Solution Explorer. Там оказывается можно поменять порядок следования фич. Сделал, заработало.
На скрине красным отмечен список TaskList, в котором Lookup поле на список ListTitles, а также еще несколько Lookup полей на другие списки, которые тоже остались "наверху" в этой последовательности. Все поля стали работать.
Благодарю всех, кто помогает и пытается помочь! Только с вашей помощью находятся решения проблем.- Изменено Evgueny Fyodorov 8 сентября 2017 г. 9:39
8 сентября 2017 г. 9:35