ViewFields Property, 顺便讨教

获取或设置在使用SPQuery查询时的Query使用的内部XML的描述,这个描述表示查询显示的字段。

可以声明多个FieldRef标签,使用Name和ID属性来标识字段。

缺省情况下如果查询的列表中没有包含FieldRef指定的字段,那么将没有返回的结果。为了如果在查询的List中没有指定的字段,并能返回结果,可以设置FieldRef的Nullable属性为True,这将不支持Lookup和Person/Group字段。比如:

<ViewFields>

<FieldRef Name="Title" Nullable="TRUE" />

</ViewFields>

上面的指定,也就是List中如果查询不到Title的结果,也将有结果集返回,这列为Null。

列表的属性可以包括在查询的ListProperty标签中,比如列表的Title属性。ListProperty标签可以指定下面的列表属性,通过Name属性指定。

  • Title -- 包含在Item中的列表的标题.

  • ListId -- 包含在Item中的列表的GUID.

  • DraftVersionVisibility -- 包含在Item中的列表的DraftVersionVisibility(是否显示版本,作者,审批者等)

站点的属性可以包括在查询的ProjectProperty标签中,比如列表的Title属性。ProjectProperty标签可以指定下面的列表属性,通过Name属性指定。

  • Title -- 包含在Item中的站点的标题.

  • WebId -- 包含在Item中的站点的GUID.

但我指定了WebId好像始终查询不到东西

spSiteDataQuery.ViewFields = "<FieldRef Name=\"ID\" Type=\"Counter\" /><FieldRef Name=\"ContentTypeId\" /><FieldRef Name=\"ContentType\" /><FieldRef Name=\"CommListType\"  Type=\"Number\" /><FieldRef Name=\"CommListNumber\"  Type=\"Number\"  /><ProjectProperty Name=\"WebId\" /><ListProperty Name=\"ListId\" />";

两个属性查不到东西,但指定为Title又能查到Web的Name和List的Name,知道的请指点下。

你可能感兴趣的:(property)