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/

算是先告一段落了,以后再把这个主题完善。

posted @ 2015-03-24 15:09  JeremyWong  阅读(4166)  评论(0编辑  收藏  举报