WSS 3.0列表服务
我正在使用以下CAML查询在图片库(名称图片)上运行 GetListItems():
<Query>
</Query>
<ViewFields>
<FieldRef Name="EncodedAbsUrl"/>
<FieldRef Name="Title"/>
<FieldRef Name="ContentType"/>
</ViewFields>
<QueryOptions>
<Folder>Pictures\Uploads</Folder>
<ViewAttributes Scope="RecursiveAll"/>
</QueryOptions>
此查询正确返回Uploads文件夹中的所有文件和文件夹。
但是,如果我导航到Uploads文件夹并在Uploads文件夹中选择编辑权限,则选择操作&gt; 修改权限,然后点击确认框中的确定,此查询不再有效。
我不相信这与权限有关,因为我根本没有修改权限我只是从父级“cop [ied]权限,然后停止[ped]继承权限”,选择编辑权限即可。另外,运行此查询时我没有收到错误消息,我只是得到一个空的结果集。
我尝试过的其他事情:
其他信息:
有谁知道如何修复或解决这个问题?如果需要更多细节或说明,请告诉我。
因此,经过一些实验,找到了一个解决方案,但没有得到很好的解释或记录。问题与如何调用 GetListItems 函数有关,这里是无法正常工作的代码:
System.Xml.XmlNode ndListView = listProxy.GetListAndView("Pictures", "");
string strListID = ndListView.ChildNodes[0].Attributes["Name"].Value;
XmlNode returnNode = listProxy.GetListItems(strListID, strViewID, queryNode, viewNode, _maxFolders, optionNode, null);
对于上面解释的情况,这没有按预期工作,但是,它适用于所有其他文件夹和文件。解决方案是发送 GetListItems 列表名称“图片”而不是列表GUID,如下所示:
XmlNode returnNode = listProxy.GetListItems("Pictures", strViewID, queryNode, viewNode, _maxFolders, optionNode, null);
更新
此外,MSDN documentation建议在使用Lists.GetListItem方法时使用GUID而不是列表名称:
listName :包含其中一个的字符串 显示名称或GUID 名单。建议您使用 GUID,必须被包围 大括号 ({})。在查询时 UserInfo表,该字符串包含 “的UserInfo”。
我不知道为什么这段代码有效,原来没有。虽然我的问题已经解决,但有没有人知道为什么我的原始代码不起作用(仅针对上面解释的情况)和修改过的代码有效?
答案 0 :(得分:0)
因此,经过一些实验,找到了一个解决方案,但没有得到很好的解释或记录。问题与如何调用 GetListItems 函数有关,这里是无法正常工作的代码:
System.Xml.XmlNode ndListView = listProxy.GetListAndView("Pictures", "");
string strListID = ndListView.ChildNodes[0].Attributes["Name"].Value;
XmlNode returnNode = listProxy.GetListItems(strListID, strViewID, queryNode, viewNode, _maxFolders, optionNode, null);
对于上面解释的情况,这没有按预期工作,但是,它适用于所有其他文件夹和文件。解决方案是发送 GetListItems 列表名称“图片”而不是列表GUID,如下所示:
XmlNode returnNode = listProxy.GetListItems("Pictures", strViewID, queryNode, viewNode, _maxFolders, optionNode, null);