Как обновить несколько списков с помощью пункта «где» с использованием SPServices?

sharepoint.stackexchange https://sharepoint.stackexchange.com/questions/1583

  •  16-10-2019
  •  | 
  •  

Вопрос

Я искал jquery spservices примеры кода и MSDN ссылки Для простого примера, как обновить несколько списков, используя, где оценить.

Код для обновления одного списка с iD = 500 выглядит следующим образом:

$(divId).html(waitMessage).SPServices({
    operation: "UpdateListItems",
    listName: "MyList",
    ID: 500,
    valuepairs: [["MyField", 1]],
    completefunc: function (xData, Status) {
    	$(divId).html("");
    }
});

Но возможно ли также добавить, где:

<Where><Eq><FieldRef Name="Status"/><Value Type="Text">Ready</Value></Eq></Where>

Или я должен сделать это как эта почта ? (Сначала верните список, а затем сделайте петлю для каждого элемента?)

Это было полезно?

Решение

там. Если вы используете jQuery и веб -сервисы (надеюсь, с моим Spservices Библиотека!), Вы должны сделать два шага. Позвоните в GetListems с вашим CamlQuery, чтобы получить предметы, с которыми вам нужно работать, а затем вызовите UpdateListems, чтобы внести изменения.

Кстати, это не мой дизайн, это просто так, как работает веб -сервис SharePoint. В случае сомнений, всегда обращайтесь к исходной документации на MSDN, чтобы увидеть, что требуется для каждой операции для параметров. У меня есть ссылки на все операции в SPServices, которые переносят вас непосредственно на соответствующую страницу на MSDN.

Наконец, пакетная идея в UpdateListems немного вводит в заблуждение в ее терминологии. На самом деле, вы можете запросить «пакетный» в один вызов обновления, но вы можете или не можете захотеть сделать это в зависимости от того, каковы ваши требования к обработке ошибок. Опять же, лучше всего проверить SDK на MSDN.

РЕДАКТИРОВАТЬ: Я добавил новую функцию в SPServices в V0.5.8, называемом SpupDateMultipleListItems, чтобы сделать это: http://spservices.codeplex.com/wikipage?title=%24%28%29.spservices.spupdateMultipleListItems

Другие советы

Я не пытался сделать это специально на jQuery, но вы можете обновить несколько элементов списка, используя пакетное обновление.

Вы используете CAML для создания пакетных команд и выполняете команду, используя метод ProcessBatchData на объекте SPWEB.

Есть хороший образец кода на MSDNhttp://msdn.microsoft.com/en-us/library/cc404818.aspx

Его библиотека поддерживает пакетное обновление, но я еще не уверен, поддерживает ли пакетное обновление CAML. Если вы собираетесь обновить несколько элементов, вы можете использовать службу GetItems с помощью CAML -запроса, чтобы получить элементы, которые вы хотите обновить. Затем вы можете использовать jQuery каждый в возвращении, чтобы затем создать функцию UpdateItems для каждого элемента, который вы хотите обновить. Опять же, это возможно только в том случае, если вы не можете использовать CAML -запрос на пакетном обновлении.

Я не думаю, что это доступно с обновлением партии.

Я полагаю, что вам придется запросить список с помощью вашего запроса CAML, а затем перевести через результаты с вашими обновлениями. Тем не менее, я задействовал Марка, чтобы узнать, сможет ли он дать вам официальный ответ на это.

SharePoint, похоже, не поддерживает обновление элементов на основе запроса, даже используя Spweb.processBatchData (). Довольно ограничение, учитывая производительность попытки обновлять каждый элемент по ID (даже если это с одним большим оператором партии).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с sharepoint.stackexchange
scroll top