理念:
我想在我的Sharepoint页面上的列表视图Web部件进行渲染,而不考虑用户可以输入到URL的额外查询字符串。
我的特殊情况:
如果有人在网址的末尾添加过滤器,例如
http://mysite/Blog/default.aspx?FilterField1=Main%5Fx0020%5FCategory&FilterValue1=Category1
...然后所有列表视图Web部件,无论他们指向哪个列表,都将按网址中指定的列进行过滤。
期望的结果:
我希望该网站上的某些列表视图Web部件不会被指定的列过滤,而其他部分可以过滤。
所以从本质上讲,我还希望能够选择哪个Web部件允许附加查询字符串以及哪些不允许它。
一些注释:
我不是要创建一个自定义Web部件,我正在使用列表视图Web部件,我可以做的最好的自定义是通过Sharepoint Designer。
这样做的原因是我希望将生成的网站保存为模板,并在其他Sharepoint服务器中使用它,而无需上传自定义Web部件。 (我确实意识到使用自定义Web部件可以很容易地解决所有问题)
好的,视图参数DOES工作:)
但是,我没想到答案是这样的,所以我必须为我的情况添加更多。
新情况
此网址不会手动输入,我实际上是使用xsl自动生成此网址。 由于我将在某个时刻将此站点(通过模板)转移到新服务器,因此我无法对GUID进行硬编码,因为它在新站点上应该不一样。 因此,是否有一些xsl代码来查找列表的默认视图的GUID? 或者,我可以以某种方式使用网址中视图的实际名称吗?
我当前的xsl代码
这包含在WebPart中,其视图与我在URL中所需的视图不同
<a href="{$HttpVDir}/{$thisNode/../@resource.wss.lists_Folder}/{$thisNode/../@resource.wss.blogpost_Folder}/AllPosts.aspx?FilterField1=Main%5Fx0020%5FCategory&FilterValue1={substring-after($thisNode/@Main_x0020_Category., '#')}">
备注
我需要的视图是默认视图,以防更容易
答案 0 :(得分:0)
您可以尝试查看参数:
http://mysite/Blog/default.aspx?View={A6D1D37F-25CB-473C-8B84-361829F0D96E}&FilterField1=Main%5Fx0020%5FCategory&FilterValue1=Category1
这应该将过滤器限制为仅使用该特定视图的Web部件。否则,您可能需要创建自定义Web部件。
答案 1 :(得分:0)
好!我找到了答案!
背景的
我不确定它对其他人有多大用处,但我的情况涉及我需要按某些列对列表进行分组,然后将组标题(列值)链接回同一页面,并在网址中添加过滤器
这将过滤包含元素的主列表(在单独的webpart和不同视图中),但不应过滤Grouped Webpart(导航)。
所有这些我一直在使用ListViewWebParts(xsl name = XsltListViewWebPart),所以我遇到了我指定的问题。
答案
随机地,当我在寻找一种将列表分组超过2列的方法时(在sharepoint中创建的视图将你限制为2),我遇到了一个帖子,向您展示如何添加DataViewWebPart(xsl name = DataFormWebPart),只能使用Sharepoint Designer插入,并允许超过2个分组列。
此webpart的副作用,因为它只能通过设计器添加,因此在运行时无法操纵任何与视图相关的内容。这意味着网址不会影响您在此网站部分中看到的内容!
资源的
以下是我需要处理此新网站的网站的一些链接
http://techtrainingnotes.blogspot.com/2011/01/sharepoint-group-by-on-more-than-2.html
答案 2 :(得分:-1)
您可以尝试使用View参数: http://mysite/Blog/default.aspx?View= {A6D1D37F-25CB-473C-8B84-361829F0D96E}&安培; FilterField1 =主%5Fx0020%5FCategory&安培; FilterValue1 =范畴上 Y1
这不起作用!