js 模糊查詢(fuzzy search)


這兒是stackoverflow上的一段代碼,這是實現模糊查詢的核心:

var names = ["Bob Hope","James Jones","Steve Jobs","Larry McBridge"]
var query = "st"
var results = $(names)
.map(function(i,v){
if(v.toLowerCase().indexOf(query.toLowerCase())!=-1){return v}
}).get()

 

然后遇到了一個問題,我要從后台取出一個長度為100的數組,.net開發中,先從后台取出100個數據,再把數據綁定到前台的一個隱藏域中;

 

下面是后台講數組綁定到隱藏域的方法(這也是http://stackoverflow.com/上找到的解答)

To store the array

string[] myarray = new string[] {"1","2"}; myHiddenField.Value = String.Join(",", myarray);

To get the array

string[] myarray = myHiddenField.Value.Split(',');
 
后來碰到一個問題,就是我想把數據里的數據取出來,放到一個數組內,但是奇怪的是,C#的數組的長度在定義的時候就要確定下來,我后來又用泛型,但是處理泛型時又遇到問題,泛型沒有join函數,
因為我要把數組轉換成string再發到前台的隱藏域,再把string解析成數組,誒不知道這樣是不是太笨了,明天繼續更~

今天在考慮如何把后台的字符串傳給前台的JS代碼:

首先我考慮的是在前台放一個隱藏域,后台從數據庫中取到100個數據后,轉換成String 再賦值給前台的隱藏域,但好像這樣是行不通的;

var aa = "<%=get()%>"; 后來我用這種方式從后台取到了值,get()是后台的一個函數,它返回了一個數據。我們可以在js代碼中直接調用這個函數來獲取到我們想要的值。我接着摸索。。。

js,把數組填充到下拉框:

  <asp:HiddenField ID="HiddenField1" Value="" runat="server" /> 還是用隱藏域這個方法傳值比較靠譜

$("#selectId").append("<option value='"+value+"'>"+text+"</option>");

 

 后來找了一個很好的方法,用jquery-UI,只要把數據源傳進去就好了,比自己畫下拉框靠譜多了,其實是因為自己水平弱,寫不出這樣的插件。

http://jqueryui.com/autocomplete/

算是先告一段落了,以后再把這個主題完善。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM