2010-03-10 2 views
1

В моем списке SharePoint есть столбец, который позволяет использовать несколько значений поиска. Мой элемент управления C# (в веб-части) позволяет пользователю делать несколько вариантов из списка. Я разделяю эти значения на массив - каждый член массива является выбранным значением, которое необходимо обновить в том же столбце SPListItem.Вставка/обновление нескольких значений поиска в SPListItem

Я знаю, что выборы правильно передаются из списка - мне просто нужно добавить эту группу значений в один и тот же столбец в SPListItem.

Куда я иду не так?

SPFieldLookupValueCollection MyCollection = new SPFieldLookupValueCollection(); 
for (int i = 0; i < MyArrayOfSelections.Length; i++) 
{ 
    if (MyLookupList["LookupColumn"].ToString() == MyArrayOfSelections[i].ToString()) 
    { 
     MyID = int.Parse(MyLookupList[i]["ID"].ToString()); 
     SPFieldLookupValue thisSelection = new SPFieldLookupValue(MyID,MyArrayOfSelections[i].ToString()); 
     MySubCollection.Add(thisSelection); 
     } 
    } 
    ListIWantToUpdate["ColumnWithMultipleLookupSelections"] = SubCollection; 
    ListIWantToUpdate.Update(); 
    site.Update(); 
} 
+0

приведенный выше код фактически содержится внутри другого цикла, который пересекает SPListItemCollection из списка поиска – elizabeth

+0

Бах! Я нашел проблему - это тоже было глупо. for loop, i ++ ... на внутреннем для цикла j ++. Когда я зациклился на массиве выборок из списка - я использовал индекс «i» вместо индекса «j». D'oh! Я ценю ваш сайт - обычно, когда я сталкиваюсь с проблемой ... Я могу найти ответ число рейнольдса Спасибо. – elizabeth

ответ

1

Последние строки примера кода сбивают с толку (возможно, это просто имя переменной). Если вы просто обновляете данные , вам не нужно обновлять ни объект SPList (для этого требуется разрешение «Управление списками» в конкретном списке, а не SPSite ojbect (требуется, чтобы вы были администратором или владельцем сайта). Таким образом, этот код не будет выполняться succcessfuly для обычного пользователя.

+0

Я не знаю, как я пропустил уведомление по электронной почте, когда вы ответили! Просто наткнулся на это сегодня; Я очень ценю ваш ответ. Re: запутанное состояние именования, mea culpa. Я обновляю listItem. Благодарим вас за исправление объекта SPSite. Ваше сообщение было полезно. – elizabeth