這兒是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/
算是先告一段落了,以后再把這個主題完善。