none
Изменение поля списка программным путем RRS feed

  • Вопрос

  • Добрый день!!

    Имеется портал на sharepoint 2007

    Подскажите пожалуйста как изменить элемент списка типа Однострочный текст??

    В поле содержится информация, которую нужно заменить.

    Кучу мест просмотрел, но везде или LINQ или CALM или решения для sharepointa 2010

    По LINQ или CALM как то маловато информации и сильно как то мудренно и сложно это работает..

    Может есть у кого нибуть готовое решение для выполнения этой простой задачи?

    28 февраля 2011 г. 7:51

Ответы

  • Откройте на редактирование представление списка и выведите поле "ИД" - будет видно, какие элементы есть.
    • Помечено в качестве ответа temorfeouz 28 февраля 2011 г. 9:08
    28 февраля 2011 г. 8:55
    Отвечающий

Все ответы

  • Какими средствами предполагаете пользоваться?

    При использовании ОМ всё просто:

    var list=web.Lists["<listName>"];
    var item = list.GetItem...; // здесь много способов, в т.ч. CAML
    item["<fieldName>"] = "<newValue>";
    
    P.S. А что за "куча мест", которую просмотрели?
    28 февраля 2011 г. 8:14
    Отвечающий
  • http://msdn.microsoft.com/ru-ru/library/ee539976.aspx

    Пункт обновление элемента списка

    этот вариант прост, но порталу не нравится последняя трока clientContext.ExecuteQuery();  - выдает 500 ошибку.При комментировании все прохидит ,но изменения не записываются :(

    http://msdn.microsoft.com/ru-ru/library/ee538246.aspx

    хорошая статейка ,но матчасти нехватает, тяжеловато для понимания..

    ну и пара статей по CAML, закрыл вкладки, но смотрел на мсдне, даже билдеры скачал по CAML, но они не особо помогли, сейчкс Ваш вариант попробую

    28 февраля 2011 г. 8:20
  • По Вашему примеру пишу так:

    using

     

    (SPSite site4 = new SPSite(@"http://sharep"))

    {

     

    using (SPWeb web4 = site4.OpenWeb())

    {

     

    SPList list = web4.Lists["LIST"];

     

    SPListItem item = list.GetItemById(1);// ...; // , .. CAML

    item[

    "ElOfList"] = "asdasd";

    item.Update();

    }

    }

     

    Ругается

     Value does not fall within the expected range.

    ArgumentException: Value does not fall within the expected range.]
       Microsoft.SharePoint.SPList.GetItemById(Int32 id, String strRootFolder, Boolean cacheRowsetAndId) +471
       Microsoft.SharePoint.SPList.GetItemById(Int32 id) +40
       new_user.vizir1.vizirSl_Click(Object sender, EventArgs e) +184


    Судя повсему ему не нравится ИД элемента списка, хотя такой элемент есть..

    28 февраля 2011 г. 8:35
  • Откройте на редактирование представление списка и выведите поле "ИД" - будет видно, какие элементы есть.
    • Помечено в качестве ответа temorfeouz 28 февраля 2011 г. 9:08
    28 февраля 2011 г. 8:55
    Отвечающий
  • !!!Воот!!

    Спасибо!!Оказывается я не тот ИД брал,  я пытался ему всунуть номер в списке, а не его реальный ИД!

    Спасибо большое, DkmS!!!

    28 февраля 2011 г. 9:08
  • Для порядкового номера другая конструкция используется:

    var item = list.Items[<порядковый номер>];
    
    28 февраля 2011 г. 10:31
    Отвечающий