首页 > 代码库 > SharePoint 根据时间筛选

SharePoint 根据时间筛选

最近在整SP列表

老大要求用列表规范周报格式。

提出要在一个视图内查看上周一至周日的内容

 

翻了下资料想到了以下几种方法

1.在视图页面添加时间筛选器webpart,用参数传入列表筛选

2.在列表添加按钮及TextBox 通过查询字符串 写段js传入参数查询列表

3.直接通过字段值判断

 

第一种实现方式截图:

 

第二种实现效果截图

第一种实现方式:

打开SharePoint desiger,插入两个日期筛选器

点击筛选按钮,在弹出框中选择条件

STime为新建的参数,如下图

以上在desiger的设计就完成掉了,我们回到页面,还需要对页面进行操作设置,编辑页面

选中一个时间筛选器的webpart,点击连接

选择筛选值发送位置,选择参数获取位置,点击配置

在配置连接中,选择参数字段,点击完成即可

以上是第一种方式实现时间筛选,webpart的时间筛选器可以设置默认值,但是依旧无法满足要求,所以再继续第二种方式。

 

第二种方式实现,基本与第一种没什么差别,还要写代码。。。

依旧打开desiger

放入两个textbook和按钮。。

继续点击筛选按钮

有个地方要说明下,域名的startDate是栏名,值下面的StartDate是参数

设置完成后,轮到按钮发挥作用了

<script type="text/javascript">function change() {           var s=document.getElementById("txt1").value;   var e=document.getElementById("txt2").value;   alert(s+e);      window.location.href="1.aspx?StartDate="+s+"&EndDate="+e; }</script>

请大家无视这段非常令人吐槽的js代码。。。

大家可以自行加上限制或者美化。。

然后回到页面。就可以实现了时间筛选。但是!还是无法满足需求。

 

看来真的得重新想办法了。

这次我决定用字段值去判断

我在excel发现过一个函数 Weekday()

我尝试在列表值的计算栏使用这个函数 Weekday(today(),2)

这个的意思是 获取当前日期在本周的第几天

今天是2014年9月24日 所以这个函数的值是3

上网查了下资料又发现一个函数DATEDIF()

DATEDIF(StartDate,TODAY(),"d")

上面的意思是判断StartDate与今天的间隔日期

 

好了,我现在有两个函数了。

如果我用间隔日期-去第几天不久可以判断了出上周么,甚至上上周

小于0是本周

在0-7之间(不包括7哦)的为上周

超过7则是上上周了。。。

最后三列的分别是  间隔日,第几日,相减结果

最后,我修改下视图的筛选条件

结果就筛选出来了。。。

 

前面我真是想太多,抽抽烟压压惊。。

SharePoint 根据时间筛选