Я только что понял, что вы говорите о поле множественного выбора lookup .Формат должен быть примерно таким: 2;#Procedures;#3;#Systems;#7;#Services
Поведение, которое вы описываете, имеет смысл, потому что оно, вероятно, интерпретирует ;#1;#2;#3;#4;#5;#
следующим образом: получить элемент в списке поиска с lookupID 1 (lookupValue равно 2
), lookupID = 3 (lookupValue - 4
) и lookupID - 5 (lookupValue - пусто)
Ниже приведен код, который можно использовать для обновления поля с несколькими вариантами выбора:
using (SPSite site = new SPSite(siteUrl))
{
using (SPWeb web = site.OpenWeb())
{
SPList list = web.Lists[listName];
SPListItem item = list.Items[0];
SPFieldLookupValueCollection spflvc = new SPFieldLookupValueCollection();
spflvc.Add(new SPFieldLookupValue(3, string.Empty));
spflvc.Add(new SPFieldLookupValue(7, string.Empty));
item["Keywords"] = spflvc;
item.Update();
}
}
Второй параметр SPFieldLookupValue
, похоже, не заботится, передается ли ему строка. Пустая, что также может объяснить, почему он игнорирует их выше.