應用場景:項目中總會遇到一些列表,存着是用戶、項目等數據,而我們需要查詢有哪些項目,這時候,就需要用到模糊查詢了,而這樣的查詢,基本不需要跨列表,所以,也沒必要配置復雜的搜索,用Designer(簡稱spd)配置數據視圖,就可以做到。
如下圖,我們先建個測試列表,插入測試數據,比較亂,大家不要見笑啊。
打開spd,打開網站,根據母版頁新建一個頁面(當然,你開心的話,也可以建一個頁面布局,新建一個頁面,只要能用spd,就OK),如下圖:
然后,插入數據視圖(先選中要插入數據視圖的位置,最好在spd設計模式下,然后插入就可以了,否則位置可能不太准),如下圖
顯示我們要查詢的列表數據,如下圖
然后,選擇我們需要的字段(我這里用了標題、創建時間),插入多項目視圖(其他選項也有應用場景,有興趣可以試試)
如下圖,顯示出來我們列表里的所有項目了(當然,樣式很難看,你可以找美工尋求幫助,設計成你喜歡的樣子),我們添加需要的參數,進行模糊查詢使用
新建參數,即可,名字隨意,但最好見名知義
再然后,就是配置篩選了。在數據視圖里找到<xsl:variable name="Rows" select="/dsQueryResponse/Rows/Row"/>,這句話,在里面修改為
<xsl:variable name="Rows" select="/dsQueryResponse/Rows/Row[($Title = '' or contains(@Title,$Title)> 0)]"/>
[($Title = '' or contains(@Title,$Title)> 0)]意思是Title為空,或者Title字段里包含Title查詢字符串,有點亂哈,@的是字段名,$的是查詢字符串。
即可完成模糊查詢,下面,我們在url上傳值,試試我們的模糊查詢,好使不好使。
如下圖:
當然,如果我們要查詢的是漢字的話,那么,我們需要對漢字進行escape編碼,js腳本就可以實現了。然后,寫一個input標簽,一個button標簽,一個事件,就完成我們的單列表模糊查詢了,下面看我簡單的小例子吧,js寫的不夠精細,其實如果想要input回車也能查詢,加個事件監視回車就可以咯,大家自己開動腦筋吧。
<div> <script type="text/javascript"> function search() { var biaoti = document.getElementById("searchbox").value; document.location = "/Pages/SingleListSearch.aspx?Title="+escape(biaoti); } </script> <table style="width: 100%" cellpadding="0" cellspacing="0" class="style1"> <tr> <td><input name="searchbox"></td> </tr> <tr> <td><button onclick="search()">查詢</button></td> </tr> </table> </div> |
如下圖,實現結果,不是很炫,但很實用:
總結:我不否認,sharepoint隨着版本提升,VS開發的功能越來越強勁,當然,我們不要忘了最簡單的工具spd,幾分鍾就可以搞定,不必去寫webpart,挺好的方式,記下來,給大家參考,寫了一個多小時的博客,居然越寫越精神,吃個鹵蛋睡覺去了。^_^大家晚安。