Свойство LookupList содержит GUID исходного экземпляра LIST2.Если LIST2 был удален и был создан новый экземпляр, новый LIST2 будет иметь другой GUID, и ваше поле поиска в LIST1 не будет работать.
И, к сожалению, LookupList
нельзя изменить напрямую:
SPException: свойство уже установлено.Вы не можете изменить список поиска после того, как свойство LookupList установлено.
Однако вы можете попробовать следующее:
Type type = typeof(SPFieldLookup);
object obj = type.InvokeMember("SetFieldAttributeValue",
BindingFlags.InvokeMethod | BindingFlags.NonPublic | BindingFlags.Instance,
null,
myLookupField,
new object[] { "List", guidOfNewList.ToString() });
myLookupField.Update();
Используя отражение, вы можете попытаться вызвать внутренний SetFieldAttributeValueметод и измените атрибут «Список», который используется свойством LookupList
.