2013-04-07 80 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. 现在它将显示完整查询,从“”选择并在代码中使用它(用您的代码值替换值)。