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)
{
……
}