将当前列表视图过滤器转换为CAML查询

时间:2013-04-07 15:58:35

标签: sharepoint-2010

我在sharepoint2010工作,

我有一个自定义列表。 Employees

  

的http:/lists/employees/allitems.aspx

我在列表中进行了一些过滤,因此URL会自动变为这样

  ?

HTTP:///lists/employees/allitems.aspx查看= {GUID}&安培; filterField1 =字段名&安培; FilterValue1 = 123 ......

我想将此网址转换为CAML查询,或者以任何其他方式将过滤后的数据转换为DataTable。

SharePoint SDK中是否有可用的功能或任何有关此功能的建议?

提前致谢。

3 个答案:

答案 0 :(得分: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 :(得分:0)

经过一番搜索,我知道不可能自动转换成CAML,所以我决定自己去解析。

答案 2 :(得分:0)

是。有可能的。! 从CodePlex下载SharePoint CAML Query Helper。 这是一个非常有用的构造CAML查询的工具。

现在按照以下步骤操作:

  1. 使用必需的过滤器为列表创建视图。
  2. 打开SharePoint CAML查询助手。
  3. 输入您的凭据,打开所需的网站。
  4. 它会加载右侧的所有列表,双击所需的列表。
  5. 点击打开列表视图
  6. 双击先前创建的视图。
  7. 现在它将显示完整查询,从&#34;&#34;中选择在代码中使用它(用代码值替换值)。