5
我有一個大型文檔庫(此刻〜6000個文檔),我需要根據自定義字段值(庫上的自定義列)來查找文檔。 。Sharepoint 2010客戶端對象模型 - 大型庫 - 查找項目無迭代
有沒有辦法讓這個文件沒有遍歷所有6000文件?
我知道迭代必須在某個時候發生,但我更喜歡它發生在SharePoint服務器端,而不是將它們全部傳輸到客戶端,然後櫻桃選擇文檔。
謝謝
我有一個大型文檔庫(此刻〜6000個文檔),我需要根據自定義字段值(庫上的自定義列)來查找文檔。 。Sharepoint 2010客戶端對象模型 - 大型庫 - 查找項目無迭代
有沒有辦法讓這個文件沒有遍歷所有6000文件?
我知道迭代必須在某個時候發生,但我更喜歡它發生在SharePoint服務器端,而不是將它們全部傳輸到客戶端,然後櫻桃選擇文檔。
謝謝
您可以查詢Sharepoint。您發出在服務器上執行的CAML查詢,並僅返回符合您指定條件的項目。您指定要搜索的自定義列的名稱,並指定要查找的值。爲了提高效率,您可以只詢問幾個字段(例如文檔url)。因此,您不需要遍歷列表中的文檔來查找該項目。
你可以在這裏找到一些討論: http://msdn.microsoft.com/en-us/library/ee956524.aspx,你也可以找到例子如何從JavaScript或silvelight做到這一點。
例CAML:
CamlQuery camlQuery = new CamlQuery();
camlQuery.ViewXml =
@"<View>
<Query>
<Where>
<Eq>
<FieldRef Name='FileLeafRef'/>
<Value Type='Text'>Test.docx</Value>
</Eq>
</Where>
<RowLimit>1</RowLimit>
</Query>
</View>";
即CAML查詢由filename返回文檔雖然。如何通過文檔ID查詢?我已經嘗試過文檔ID,文檔ID值等沒有成功... – Russell
如果這是Sharepoint的ID字段,它的名稱將是「ID」,如果這是您的自定義字段名稱比它很可能是「Document_x0020_ID」 。 Sharepoint用x0020替換字段名稱中的空格。另外,如果Sharepoint過長,並且您還需要知道該字段的類型,則Sharepoint會截斷字段名稱。如果它是內置的「ID」字段,它的類型是Counter,例如: 123 。如果您的字段是自定義文本字段: xxxx should work。 –
KJRB
如果上述建議不起作用(也許原始字段名稱被設置爲與文檔ID不同),則需要找出「文檔ID」列的內部字段名稱。看到它的一種方法是查看相關網站欄的網址。您應該在該頁面的網址(field =)中看到內部名稱。該字段的顯示名稱與interanl名稱不同。 CAML查詢使用內部名稱。 – KJRB