none
Проблема с Lookup полями. Работают, а потом перестают работать. RRS feed

  • Общие обсуждения

  • Здравствуйте.

    Подскажите, пожалуйста, в чем может быть дело. Создал в проекте несколько списков (Custom List). В некоторых из них есть поля Lookup, которые ссылаются на другие, созданные мной, списки. Так вот ни с того ни с сего у меня в каком-либо из списков может перестать работать поле Lookup. Т.е. просто данные перестают в нем сохраняться. Над проектом я продолжаю работать. Тестирую, дополняю, раздел Features я не трогаю. Там как автоматически создаются фичи, так и оставляю. Я думал что с фичами дело. Пытался порядок следования списков в фичах менять, но результат не понятен и проблема не решается.

    Вот например есть у меня список TaskList. Вроде проект почти закончен, но при тестировании вижу, что Lookup поля остаются пустыми, хотя данные в них записываются и раньше работало. После долгого поиска ошибки, решил удалить и заново создать такой список. В итоге данные стали сохраняться, но перестало работать Lookup поле в другом списке под названием ListTitles. Его поле Project, которое ссылается на список ListProjects поле ProjectNumber остаётся пустым при добавлении элемента.

    Вот недоумеваю и не могу понять где связь вообще.

    Когда списки я создаю, выбираю Default (Custom List). Visual Studio 2015, SharePoint 2013.

    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 создаю список и редактирую его.


    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();
                    }
                }
            }
    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 поля, ссылающиеся на другие списки из этого решения. Как этот код может мне помочь?

    Прав достаточно. В решении создаю, разворачиваю на сайте, аналогичные списки работают без проблем, некоторые отваливаются.
    8 сентября 2017 г. 9:13
  • Вот вроде решение проблемы подвернулось. Я подозревал что связано с Features. Только я пробовал удалять фичи и создавал заново фичу с нужным порядком загрузки списков и веб частей. Но результат был не понятный. Что-то менялось кардинально, вплоть до того, что все поля какого-либо моего списка могли не загрузиться (их просто не было у моего кастомного списка, а оставались лишь стандартные). А при перезагрузке Visual Studio, студия могла сама пересоздать все файлы Features автоматически.

    В общем ближе к делу. Сейчас обратил внимание на Package, что находится под Features в Solution Explorer. Там оказывается можно поменять порядок следования фич. Сделал, заработало.

    На скрине красным отмечен список TaskList, в котором Lookup поле на список ListTitles, а также еще несколько Lookup полей на другие списки, которые тоже остались "наверху" в этой последовательности. Все поля стали работать. 


    Благодарю всех, кто помогает и пытается помочь! Только с вашей помощью находятся решения проблем.
    8 сентября 2017 г. 9:35