2

我正在尝试为 SP 中的列表创建 CAML 查询。

我想使用修改视图页面来创建一个包含过滤器的基本视图,然后使用一些代码来检查 SPView 的 Query Prop:

string t = dataList.Views["MyView"].Query;

但是 t 中的 CAML 不包含任何 Where 元素。只是orderby

<OrderBy>
    <FieldRef Name="ID" />
</OrderBy>

SharePoint 如何存储视图筛选器的 CAML?

4

1 回答 1

2

诡异的。

因为如果您检查内置列表架构(例如任务列表架构,您可以在 C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\TEMPLATE\FEATURES\TasksList\Tasks\schema.xml 找到)查询元素中的 Where 子句:

<View>
*....*
    <Query>
      <OrderBy>
        <FieldRef Name="Modified" Ascending="FALSE">
        </FieldRef>
      </OrderBy>
      <Where>
        <Or>
          <Neq>
            <FieldRef Name="Status">
            </FieldRef>
            <Value Type="Text">$Resources:core,Tasks_Completed</Value>
          </Neq>
          <IsNull>
            <FieldRef Name="Status">
            </FieldRef>
          </IsNull>
        </Or>
      </Where>
    </Query>
  </View>

哦,你可以试试SPCamlViewer来检查你的观点。

于 2009-09-18T10:17:48.117 回答