+ -
当前位置:首页 → 问答吧 → 关于Jquery的自动完成插件实例 AutoComplete,当数据源换成从动态的时就不起作用了

关于Jquery的自动完成插件实例 AutoComplete,当数据源换成从动态的时就不起作用了

时间:2010-04-28

来源:互联网

复制代码
  1. [/code]ASP静态数据源
  2. [code]<%
  3. str = "[{'JobName':' Group Leader, Product Management CN and APA'},{'JobName':' Manufacturing Engineer-EM, Nanjing, S&C, ACS'},{'JobName':' secured loan head'},{'JobName':'?单元负责人 - 大理'}]"
  4. response.Write str
  5. %>

ASP动态数据源
复制代码
  1. <%
  2. sql = "select top 4 * from (select distinct(jobname) from jobs where isdeleted=0 and jobname<>'') as a"
  3. dim str
  4. str = "["
  5. set rs = server.CreateObject("ADODB.Recordset")
  6. rs.open sql,conn,1,1
  7. i=1
  8. if rs.recordcount>0 then
  9.     do while not rs.eof
  10.         if i=1 then
  11.             str = str&"{'JobName':'"&replace(rs("jobname"),"'","")&"'}"
  12.         else
  13.             str = str&",{'JobName':'"&replace(replace(replace(rs("jobname"),"'",""),"""",""),"","")&"'}"
  14.         end if
  15.         i=i+1
  16.     rs.movenext
  17.     loop
  18. end if
  19. rs.close
  20. set rs = nothing
  21. conn.close
  22. set conn = nothing
  23. str = str&"]"
  24. 'Response.CharSet = "GB2312"
  25. response.Write str
  26. %>

这两段代码的输出结果是一模一样的,可在利用jquery-autocomplete插件调用时,前者很完美,后者无反应!
jquery代码如下:
复制代码
  1. <script type="text/javascript">
  2.         /*==========用户自定义方法==========*/
  3.         //职位数据
  4.         var jobList;
  5.         //autocomplete选项
  6.         var options = {
  7.             minChars: 1,
  8.             max: 500,
  9.             width: 250,
  10.             scroll: true,
  11.             height: 500,
  12.             matchContains: true,
  13.             formatItem: function(row, rowNum, rowCount, searchItem)
  14.             {
  15.                 return rowNum + "/" + rowCount + ": \"" + row.JobName ;
  16.             },
  17.             formatMatch: function(row, rowNum, rowCount)
  18.             {
  19.                 return row.JobName;
  20.             },
  21.             formatResult: function(row, rowNum, rowCount)
  22.             {
  23.                 return row.JobName;
  24.             }            
  25.         };
  26.         //autocomplete初始化函数
  27.         function initAutoComplete(data)
  28.         {
  29.             jobList = data;
  30.             $("#inputCityName").autocomplete(jobList, options);
  31.                             
  32.         }
  33.         /*==========加载时执行的语句==========*/
  34.         $(function()
  35.         {
  36.             //$.getJSON(url, null, initAutoComplete)  
  37.             $.ajax({
  38.                    url:"test4.asp?d="+Math.random(),
  39.                    dataType:'json',
  40.                    success:initAutoComplete
  41.                    });
  42.         });        
  43.     </script>

望高手们帮忙分析分析!

作者: jerry_zzj   发布时间: 2010-04-28

居然无人问津

作者: jerry_zzj   发布时间: 2010-04-29

我的问题已经解决,动态出来的数据不成功是因为编码的问题,某条记录的jobname字段的开头在数据库中显示为空格,可response出来之后确实问号,不论你在sql中replace还是在页面中trim都不管用,显示结果依然带着问号,真奇怪,无奈之下只好在数据库中将该记录的该字段UPDATE了一下,还好目前数据库中只有这一条记录这么隔路!

但是新的问题有出现了
autocomplete的效率是否欠佳,我在动态页select top 400的话,自动提示功能还没问题,但过了四百就出不来了
希望用个这个插件的人进来讨论一下,怎么改进效率?或者各位是用什么更有效率的插件的?

作者: jerry_zzj   发布时间: 2010-04-30