Sharepoint:通过webservices检查sharepoint list子文件夹中是否存在项目?

时间:2009-11-04 09:39:53

标签: sharepoint wss

我的原始问题here回答了如何检查列表中是否存在项目,但这不适用于列表中子文件夹中的项目。

如何检查项目是否存在,无论其存储在哪个子文件夹中?

如果失败了,我怎么能检查项是否存在,即使这意味着以某种方式将子文件夹值以某种方式传递给查询?

以下代码有效,但不会查看子文件夹:

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;
    }
}

1 个答案:

答案 0 :(得分:0)

您需要将Scope设置为Recursive

您可以使用对象模型SPQuery.ViewAttributes

执行此操作
query.ViewAttributes = "Scope=\"Recursive\"";

看起来您正在使用Web服务GetListItems,因此您可以在QueryOptions

中传递此参数
<QueryOptions>
   <ViewAttributes Scope="Recursive" />
</QueryOptions>