2013-04-07 75 views
1

我正在sharepoint2010工作,將當前列表視圖過濾器轉換成CAML查詢

我有一個自定義列表。 Employees

HTTP:/lists/employees/allitems.aspx

我在列表中一些過濾,所以網址會自動變成這個樣子

的http:///名單/employees/allitems.aspx?View={guid} & filterField1 =字段名& FilterValue1 = 123 ......

我想將此URL轉換爲CAML查詢,或以任何其他方式將我過濾的數據作爲DataTable獲取。

SharePoint SDK中是否提供了任何可用功能或對此有任何建議?

在此先感謝。

回答

0

您CAML查詢這樣的:

 <Query> <Where> 
    <Eq> <FieldRef Name='Title' /> <Value Type='Text'>123</Value> </Eq> 
    </Where> </Query> 

和C#代碼:

 SPQuery query = new SPQuery(); 
     query.Query = caml; 
     SPContext.Current.List.GetItems(query).GetDataTable(); 
+1

嗨,我不能硬編碼的CAML查詢。它不確定該過濾器將是「標題= 123」。過濾將來自用戶界面,該用戶在列表視圖中進行過濾。我需要將該過濾器轉換爲CAML查詢。 – 2013-04-08 04:26:45

+0

你必須自己解析這些網址,並翻譯成caml ... – Raymond 2013-04-08 05:33:48

0

一些搜索後,我才知道,那是不可能自動轉換爲CAML,所以我決定去解析我自己。

0

是的。有可能的。! 從CodePlex下載SharePoint CAML Query Helper。 這是一個非常有用的構建CAML查詢的工具。

現在,按照下面的步驟:

  1. 創建名單及需要過濾器視圖。
  2. 打開SharePoint CAML查詢助手。
  3. 把你的憑據,打開所需的網站。
  4. 它加載右側的所有列表,雙擊所需的列表。
  5. 點擊打開清單查看
  6. 雙擊之前創建的視圖。
  7. 現在它將顯示完整查詢,從「」選擇並在代碼中使用它(用您的代碼值替換值)。