1
我正在使用CAML查詢查詢SharePoint列表。在這裏,我在一個列表欄中使用Order by條件。有序列中有空值的機會,在這種情況下,我想使用另一列表列(例如:標題列')對列表進行排序。如何通過條件在caml查詢中添加此訂單以獲取Sharepoint列表項目。在CAML查詢中添加條件查詢
我的代碼是:
query.ViewXml = "<View><Query>";
query.ViewXml += "<OrderBy><FieldRef Name='" + orderBy + "'/></OrderBy>";
query.ViewXml += "<Where><Eq><FieldRef Name='" + fieldRef + "'/><Value Type = '" + type + "'>" + value + "</Value></Eq></Where>";
query.ViewXml += "</Query></View>";
我的要求不是這樣的。如果'order by'列沒有任何值,那麼我必須根據'orderBySecondary'列對列表進行排序。我不願意使用兩列作爲排序列。 – Srikanth
所以你的意思是說,對於一些項目,這個列將是空的,有些則不會?在這種情況下,您需要使用C#手動對其進行排序。 –
由於您正在C#類中構建CAML,因此只需執行「if(orderBy == null)」,然後執行一些神奇的代碼。我的意思是,只需添加一個if區塊即可。您要創建「OrderBy」子句的行是您需要放入該塊的行。另一方面,獲得所有的項目,然後做一些linq魔術並完成,但效率並不高。 – ricardordz