禁用特定Web部件的附加查询字符串(Sharepoint)

时间:2011-09-15 20:17:10

标签: sharepoint listview filter web-parts

理念:

我想在我的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&amp;FilterValue1={substring-after($thisNode/@Main_x0020_Category., '#')}">

备注

我需要的视图是默认视图,以防更容易

3 个答案:

答案 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

http://www.jwc3.net/2008/05/how-to-get-url-in-xsl.html

答案 2 :(得分:-1)

您可以尝试使用View参数: http://mysite/Blog/default.aspx?View= {A6D1D37F-25CB-473C-8B84-361829F0D96E}&安培; FilterField1 =主%5Fx0020%5FCategory&安培; FilterValue1 =范畴上 Y1

这不起作用!