1、最近几天在用SPQuery来查询SPList的内容的时候,发现如果SPList里面有子文件夹,默认情况下,如果用以下代码进行查询,则只能返回MySPListObject里面的根文件夹里面的Items;
SPQuery query = new SPQuery();
query.Query = “Men”;
SPListItemCollection items = MySPListObject.GetItems(query);
2、由于我的这个Gender栏是我在MySPListObject里面创建的一个自定义栏,栏的类型是下拉框选项类型,一开始的时候我把CHOICE/">写成了Text/">,也就是说,CAML里面指定的栏类型跟SPList里面定义的栏类型不一致,结果SPQuery没有报错,而是返回MySPListObject这个列表里面包括子文件夹里面的所有Items,这有点让人想不明白;
3、为了让SPQuery查询子文件夹里面的Items,则必须加上一句代码:query.ViewAttributes = "Scope=/"Recursive/""; 完整的代码如下:
SPQuery query = new SPQuery();
query.ViewAttributes = "Scope=/"Recursive/"";
query.Query = “Men”;
SPListItemCollection items = MySPListObject.GetItems(query);
foreach (SPListItem item in items)
{
……
}
本文探讨了使用SPQuery查询SharePoint列表时如何正确获取包含子文件夹的项目。文章详细介绍了设置查询属性以递归检索所有项目的必要性,并讨论了自定义列类型与CAML查询之间的兼容性问题。
96

被折叠的 条评论
为什么被折叠?



