它适用于一个人但不是多人的原因是因为支票是针对个人的。您的观点所做的比较是,Assigned是否等于[Me],而不是Assigned是否将[Me]作为其实体之一。
不使用is equal to
的列表过滤器,而是使用列表过滤器contains
。这应该够了吧。
编辑回应评论
要访问的对象模型,你需要使用Visual Studio。我不知道使用SharePoint Designer来完成这种事情的一种方法,但也许有一些疯狂的数据库查看您可以做的事情。无论如何...满足您的实际需求...
以下代码示例说明了一种实现您的目标的非常基本的方法。
using (SPSite site = new SPSite("yourwebsiteurlhere"))
{
using (SPWeb web = site.OpenWeb())
{
SPList list = web.Lists["titleoflist"];
SPView view = list.Views["filteredviewname"];
view.Query = "<Where><Contains><FieldRef Name=\"assignfield\"/><Value Type=\"Integer\"><UserID Type=\"Integer\" /></Value></Contains></Where>";
view.Update();
}
}
替换“yourwebsiteurlhere”与该网站的网址,“titleoflist”与您的问题列表的标题,“filteredviewname”与视图的名字,而“assignfield”与你使用的内部名称您的分配领域。如果您是通过标准SharePoint用户界面创建的,则应该是没有空格的字段名称。
至于在哪里运行代码,您可以将这种事情放在一次性工作流程中。我有时只是为了确保我有必要的特权。希望这可以帮助!
如果您无法/不允许使用Visual Studio,那么您的解决方案可能必须是查看第三方解决方案。
感谢您的回复。但是,sharepoint告诉我,包含的过滤器类型不能用于此类型的列。我想知道我是否需要第三方组件(如http://www.software112.com/products/sharepoint-people-contains-filter-webpart.html) – csm8118 2010-04-15 19:13:57
你是对的。但是,如果您有权访问对象模型并可以直接编辑SPView,而不是第三方组件,则应该可以使用CAML查询来实现此目的。如果你需要我构建一个示例代码片段,请告诉我,我将编辑我的帖子,@ csm8118 – 2010-04-15 19:18:32
请提供示例代码片段。我认为我应该有充分的权利来编辑,但我没有尝试过。我需要在共享点设计者还是其他方面做到这一点? – csm8118 2010-04-15 19:23:55