这儿是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/
算是先告一段落了,以后再把这个主题完善。