文本框需要边输入边搜索边智能提示。现在我做出来的效果是:输入一个值后,出现智能提示,是由数据库获取,由几个字段拼起来的。
谁帮我修改下,做了几个小时没达到效果。

解决方案 »

  1.   

    查询表的所有数据再匹配?直接like
      

  2.   


    看下我的代码,keyword我怎么传过去。
      

  3.   

    我开始还想,精确查询都数据量大,改成模糊查询,那不更大后来一看你做法,就明白了,你是页面加载的时候就把所有的数据都捞下来,这样肯定慢试试ajax吧,在用户输入的时候,把用户的输入做法参数,传到ashx页面,由ashx页面查询数据库,然后返回相应格式的数据回来
      

  4.   

    我昨天也在研究Jquery  UI  也搞了这个  只是没几个字段数据连在一起了   呵呵  用Ajax控件好实现些
      

  5.   

    这样的功能还是用Ajax比较好.
      

  6.   

    把那三个jquey引用文件给我发一份,我找找原因,邮箱:[email protected]
      

  7.   

    解决方法:
    后台CS文件:【PS:注意在方法上面加[WebMethod],用于前台调用】    [WebMethod]
        public static string GetTip(string keyword)
        {
            IList<ACSClass> list = GetACSClassByClassName(keyword);
            string str = "[";
            for (int i = 0; i < list.Count; i++)
            {
                ACSClass acsclass = (ACSClass)list[i];
                str += "{name:'" + acsclass.Classcode + "',to:'" + acsclass.Classname + "'},";
            }
            str = str.Substring(0, str.Length - 1);//去掉最后一个逗号   
            str += "]";
            return str.ToString();
        }
    前台:使用ajax传递,onkeyup事件时候调用后台的那个方法    <script type="text/javascript">
                var emails; 
                var keywordlist;
                function SaveValidation_onSuccess(result)
                {
                    if(result=="]")
                   {
                      //alert("没有数据");
                   }
                    else
                   {
                      emails=result;   
                      keywordlist=eval(emails); 
                   }
                }
                function SaveValidation_onFail(errors, userContext, methodName)
                {
                    alert(errors.get_Message());
                }
                function changeTip()
                {
                    var keywords=document.getElementById("keyword").value;
                    if(keywords.length>=2){
                    PageMethods.GetTip(keywords,SaveValidation_onSuccess,SaveValidation_onFail);
                        $(function() {
                            $('#keyword').autocomplete(keywordlist, {
                             max:10,    //列表里的条目数
                             minChars: 1,    //自动完成激活之前填入的最小字符
                             width: 400,     //提示的宽度,溢出隐藏
                             scrollHeight: 300,   //提示的高度,溢出显示滚动条
                             matchContains: true,    //包含匹配,就是data参数里的数据,是否只要包含文本框里的数据就显示
                             autoFill: false,    //自动填充
         //提示
                             formatItem: function(row, i, max) {                        
                                 return i + '/' + max + ':"' + row.name + '"[' + row.to + ']';
                             },
         //匹配
                             formatMatch: function(row, i, max) {
                                 return row.name + row.to;
                             },
         //结果
                             formatResult: function(row) {
                                 return row.name;
                             }
                      }).result(function(event, row, formatted) {
         document.getElementById("keyword2").value=row.to;  
                         });
                     });
                  }
               }
        </script>
      

  8.   

    string str = "[";
    str.ToString();已经是string的类型,还ToString吃饱没事干。
      

  9.   

    问下ashx返回的字符串怎么转换为脚本。
      

  10.   

    数据源那个地址修改为URL连接到Handler.ashx返回的值是拼的一个数组,但是在脚本里面不解析,还是做字符串用了。谁帮忙解决下。
      

  11.   

    [email protected],发一份给我看看吧,谢谢啦