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