我过滤问题

时间:2011-12-20 20:30:37

标签: sharepoint sharepoint-2010

我已将以下字段添加到基于自定义内容类型的自定义列表定义中。

<Field Type="User" DisplayName="Line Manager" List="UserInfo" Required="FALSE" EnforceUniqueValues="FALSE" ShowField="ImnName" UserSelectionMode="PeopleOnly" UserSelectionScope="0" ID="{098E0A5A-8187-481E-B155-B674A406EEAF}" SourceID="{53ca79b7-9ffa-457d-aff8-c71508b09cb1}" StaticName="Line_x0020_Manager" Name="Line_x0020_Manager" RowOrdinal="32" Filterable="TRUE" FromBaseType="TRUE"/> 

我在视图中将[Me]过滤器放在此列上。过滤器无法过滤登录用户的记录。

我错过了什么吗?

修改

有趣的是,如果我通过SharePoint UI添加类似的列,则过滤器可以正常工作。任何线索,欢迎的想法。

2 个答案:

答案 0 :(得分:2)

[Me]过滤器是否适用于本机列表定义? 或者,您确定使用英文版安装SharePoint吗?

也许您应该将字段类型从“用户”更改为“人员或群组”

答案 1 :(得分:2)

唷!!这已经解决了,是最令人沮丧的事情之一。我不确定这是否与我在下面定义架构的方式存在问题,或者它是否是SharePoint的错误。

我运行了一个分析器来查看引擎盖下发生了什么并找到了一个查询(对我来说很难消化),其中RowOrdinal被广泛使用,预定义值为0或1.我正在使用“ 32“作为RowOrdinal,对我来说看起来很阴暗。我把它改为“0”和宾果!过滤器开始工作。

BTW这里是MSDN所说的 - “可选整数。指定字段的数据库位置。”

看起来不应该参与记录过滤。

因此,关闭该字段应定义为

<Field Type="User" DisplayName="Line Manager" List="UserInfo" Required="FALSE" EnforceUniqueValues="FALSE" ShowField="ImnName" UserSelectionMode="PeopleOnly" UserSelectionScope="0" ID="{098E0A5A-8187-481E-B155-B674A406EEAF}" SourceID="{53ca79b7-9ffa-457d-aff8-c71508b09cb1}" StaticName="Line_x0020_Manager" Name="Line_x0020_Manager" RowOrdinal="0" Filterable="TRUE" FromBaseType="TRUE"/>