最近在整SP列表javascript
老大要求用列表規範週報格式。java
提出要在一個視圖內查看上週一至週日的內容web
翻了下資料想到了如下幾種方法函數
1.在視圖頁面添加時間篩選器webpart,用參數傳入列表篩選設計
2.在列表添加按鈕及TextBox 經過查詢字符串 寫段js傳入參數查詢列表excel
3.直接經過字段值判斷code
第一種實現方式截圖:blog
第二種實現效果截圖ip
第一種實現方式:字符串
打開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則是上上週了。。。
最後三列的分別是  間隔日,第幾日,相減結果
最後,我修改下視圖的篩選條件
結果就篩選出來了。。。
前面我真是想太多,抽抽菸壓壓驚。。