获取或设置在使用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,知道的请指点下。
浙公网安备 33010602011771号