2009-11-04 3 views
0

Мой первоначальный вопрос here отвечает, как проверить, существует ли элемент в списке, но это не работает для элементов в подпапках в списке.Sharepoint: проверить, существует ли элемент в подпапке списка sharepoint через webservices?

Как проверить, существует ли элемент, вне зависимости от того, какая его подпапка хранится?

В противном случае, как я могу проверить, существует ли элемент, даже если это означает каким-то образом передать значение подпапки в запрос?

Следующий код работает, но не будет выглядеть в подпапках:

private bool attachmentLinkItemDoesntExist(string attachmentName) 
{ 
    XmlDocument doc = new XmlDocument(); 
    doc.LoadXml("<Document><Query><Where><Contains><FieldRef Name=\"Title\" /><Value Type=\"Text\">" + this.downloadedMessageID + "_" + attachmentName + "</Value></Contains></Where></Query><ViewFields /><QueryOptions /></Document>"); 
    XmlNode listQuery = doc.SelectSingleNode("//Query"); 
    XmlNode listViewFields = doc.SelectSingleNode("//ViewFields"); 
    XmlNode listQueryOptions = doc.SelectSingleNode("//QueryOptions"); 
    XmlNode items = this.wsLists.GetListItems(this.AttachmentsListName , string.Empty, listQuery, listViewFields, string.Empty, listQueryOptions, null); 
    if (items.ChildNodes[1].Attributes["ItemCount"].Value == "0") 
    { 
     return true; 
    } 
    else 
    { 
     return false; 
    } 
} 

ответ

0

Вы должны установить Scope рекурсивной

Вы можете сделать это с помощью объектной модели SPQuery.ViewAttributes

query.ViewAttributes = "Scope=\"Recursive\""; 

Похоже, вы используете веб-сервис GetListItems, чтобы передать этот параметр в QueryOptions

<QueryOptions> 
    <ViewAttributes Scope="Recursive" /> 
</QueryOptions> 
Смежные вопросы