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

Sharepoint 2010 将当前列表视图过滤器转换为CAML查询,sharepoint-2010,Sharepoint 2010,我在sharepoint2010工作 我有一个自定义列表员工 http:/lists/employees/allitems.aspx 我在列表中做了一些过滤,所以URL会自动变成这样 http:///lists/employees/allitems.aspx?View={guid}&filterField1=fieldname&FilterValue1=123 我想将此URL转换为CAML查询,或者以任何其他方式将过滤后的数据作为DataTable获取 SharePoint SDK中是否有可用的

我在sharepoint2010工作

我有一个自定义列表<代码>员工

http:/lists/employees/allitems.aspx

我在列表中做了一些过滤,所以URL会自动变成这样

http:///lists/employees/allitems.aspx?View={guid}&filterField1=fieldname&FilterValue1=123

我想将此URL转换为CAML查询,或者以任何其他方式将过滤后的数据作为DataTable获取

SharePoint SDK中是否有可用的功能或对此的建议


提前谢谢

您的caml查询如下:

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

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

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

现在,请执行以下步骤:

  • 使用所需的筛选器为列表创建视图
  • 打开SharePoint CAML查询帮助程序
  • 放入您的凭据,打开所需的站点
  • 它加载右侧的所有列表,双击所需列表
  • 单击“打开列表视图”
  • 双击先前创建的视图
  • 现在它将显示完整查询,选择从“”到并在代码中使用它(用代码值替换值)

  • 嗨,我不能硬编码CAML查询。不确定过滤器是否为“Title=123”。过滤将来自用户在列表视图中执行的UI。我需要将该过滤器转换为CAML查询。
            SPQuery query = new SPQuery();
            query.Query = caml;
            SPContext.Current.List.GetItems(query).GetDataTable();