【问题标题】:Convert current list view filter into CAML query将当前列表视图过滤器转换为 CAML 查询
【发布时间】:2014-05-28 18:49:06
【问题描述】:

我在sharepoint2010工作,

我有一个自定义列表。 Employees.

http:/lists/employees/allitems.aspx

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

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

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

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

提前致谢。

【问题讨论】:

    标签: sharepoint-2010


    【解决方案1】:

    您的 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();
    

    【讨论】:

    • 嗨,我无法对 CAML 查询进行硬编码。它不确定过滤器是否为“Title=123”。过滤将来自 UI,该用户在列表视图中执行。我需要将该过滤器转换为 CAML 查询。
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

      现在按照以下步骤操作:

      1. 使用所需的过滤器为您的列表创建一个视图。
      2. 打开 SharePoint CAML 查询帮助程序。
      3. 输入您的凭据,打开所需的站点。
      4. 它会在右侧加载所有列表,双击需要的列表。
      5. 点击打开列表视图
      6. 双击您之前创建的视图。
      7. 现在它将显示完整的查询,从“”中选择并在您的代码中使用它(将值替换为您的代码值)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-03-20
        • 1970-01-01
        • 2022-11-14
        • 2019-11-15
        相关资源
        最近更新 更多