最近在整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则是上上周了。。。
最后三列的分别是 间隔日,第几日,相减结果
最后,我修改下视图的筛选条件
结果就筛选出来了。。。
前面我真是想太多,抽抽烟压压惊。。