應(yīng)用場景:項目中總會遇到一些列表,存著是用戶、項目等數(shù)據(jù),而我們需要查詢有哪些項目,這時候,就需要用到模糊查詢了,而這樣的查詢,基本不需要跨列表,所以,也沒必要配置復(fù)雜的搜索,用Designer(簡稱spd)配置數(shù)據(jù)視圖,就可以做到。
如下圖,我們先建個測試列表,插入測試數(shù)據(jù),比較亂,大家不要見笑啊。
打開spd,打開網(wǎng)站,根據(jù)母版頁新建一個頁面(當(dāng)然,你開心的話,也可以建一個頁面布局,新建一個頁面,只要能用spd,就OK),如下圖:
然后,插入數(shù)據(jù)視圖(先選中要插入數(shù)據(jù)視圖的位置,最好在spd設(shè)計模式下,然后插入就可以了,否則位置可能不太準(zhǔn)),如下圖
顯示我們要查詢的列表數(shù)據(jù),如下圖
然后,選擇我們需要的字段(我這里用了標(biāo)題、創(chuàng)建時間),插入多項目視圖(其他選項也有應(yīng)用場景,有興趣可以試試)
如下圖,顯示出來我們列表里的所有項目了(當(dāng)然,樣式很難看,你可以找美工尋求幫助,設(shè)計成你喜歡的樣子),我們添加需要的參數(shù),進(jìn)行模糊查詢使用
新建參數(shù),即可,名字隨意,但最好見名知義
再然后,就是配置篩選了。在數(shù)據(jù)視圖里找到<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查詢字符串,有點(diǎn)亂哈,@的是字段名,$的是查詢字符串。
即可完成模糊查詢,下面,我們在url上傳值,試試我們的模糊查詢,好使不好使。
如下圖:
當(dāng)然,如果我們要查詢的是漢字的話,那么,我們需要對漢字進(jìn)行escape編碼,js腳本就可以實(shí)現(xiàn)了。然后,寫一個input標(biāo)簽,一個button標(biāo)簽,一個事件,就完成我們的單列表模糊查詢了,下面看我簡單的小例子吧,js寫的不夠精細(xì),其實(shí)如果想要input回車也能查詢,加個事件監(jiān)視回車就可以咯,大家自己開動腦筋吧。
<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> |
如下圖,實(shí)現(xiàn)結(jié)果,不是很炫,但很實(shí)用:
總結(jié):我不否認(rèn),sharepoint隨著版本提升,VS開發(fā)的功能越來越強(qiáng)勁,當(dāng)然,我們不要忘了最簡單的工具spd,幾分鐘就可以搞定,不必去寫webpart,挺好的方式,記下來,給大家參考。