Добавление SPFieldLookup в список программно? - PullRequest
0 голосов
/ 25 марта 2010

Я добавил поле SPFieldLookup в список программно.

Когда я проверил свой список, я обнаружил, что поле поиска выглядит так, как будто я добавил его из пользовательского интерфейса без указания, что оно связано с элементом.

Есть ли способ принудительно связать поле поиска с элементом?

Ответы [ 3 ]

1 голос
/ 25 марта 2010

Если вы предоставляете как список, в котором находится поле SPFieldLookup, так и целевой список, у вас будут проблемы.Поскольку полю SPFieldLookup необходимо назначить целевой список по его GUID, который создается динамически при активации функции.И вы не можете определить это значение в определении своего поля, так как оно еще не существует.

Решение этой проблемы состоит в том, чтобы обеспечить как исходный, так и целевой список обычно, за исключением поля SPFieldLookup.в списке источников.
Затем в событии с активированной функцией вы добавляете это поле поиска программным путем, что теперь можно сделать, поскольку у вас есть (или, по крайней мере, можно узнать) GUID для списка целей.

0 голосов
/ 12 мая 2013

Это хороший фрагмент, который я видел и хочу поделиться Предположим, у нас уже есть два списка aList и bList. Требуется создать столбец поиска в aList, который будет искать значения в bList.

 SPList aList = web.Lists["aList"];
 SPList bList = web.Lists["bList"];
 aList.Fields.AddLookup("Lookup", bList.ID, false);
 SPFieldLookup fldLookup = aList.Fields["Lookup"] as SPFieldLookup;
 fldLookup.LookupField = bList.Fields[SPBuiltInFieldId.Title].InternalName;
 fldLookup.Update();
0 голосов
/ 25 марта 2010

Заполнили ли вы все необходимые свойства (LookupField, LookupWebId и, возможно, также LookupList) и Update () поле впоследствии?

Возможно http://www.alexbruett.net/?p=153 поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...