zoukankan      html  css  js  c++  java
  • ashx仿百度搜索的自动下拉列表

    制作环境是在c#中

    先是前台页面,可以是aspx也可以是html页面,这就是ashx的好处

    代码:

    1  <div>
    2     <input type="text" id="search" onkeyup="SearchTo()" /><input type="button" value="查询" /><br />
    3     <div id="search_result" style=" height:200px; 150px"></div>
    4  </div>

    再在Head节的script中添加js代码:

           function SearchTo() {
                var sinit = document.getElementById("search").value;
                $.get("Handler.ashx", { sinit: sinit }, function (str) {
                    document.getElementById("search_result").innerHTML = str;
                });
            }
    

      注:本人使用的是jquery 1.9.1.js

    前台部分就完成了,下面添加一个名为Handler.ashx的一般处理程序文件

    并在ProcessRequest事件中写入代码:

     1        context.Response.ContentType = "text/plain";
     2             DataTable dr = new DataTable();
     3             StringBuilder tb = null;
     4         string init = context.Request["sinit"];
     5                     dr = bb.GetList(10, "BookNmae like '" + init + "%'", "bookid",1).Tables[0];
     6                     tb = new StringBuilder("");
     7                     for (int i = 0; i < dr.Rows.Count; i++)
     8                     {
     9                         tb.Append("<br />");
    10                         tb.Append(dr.Rows[i][1].ToString());
    11                     }
    12             context.Response.Write(tb.ToString());

    这样,功能就做完了

    看看效果

    通过keyup事件,在我们输入完成时就自动从数据库查询条目,并放入这个名为search_result的层中。

    下面,我来重点解释这几句js代码,如有错误之处 请各位大神指出

    先是我们定义了一个变量并且获取了id为search的这个文本框的值,再通过js的get方法将输入的数据传入Handler.ashx文件,在ashx中我们通过模糊查询将查询到的数据用值传递的方式返回到页面,再通过js的innerHTML方法写入之前的search_result层中。

    好吧,其实按钮根本没用到。。。

  • 相关阅读:
    数据库如何部署上线阅读总结
    Nginx解决防盗链,服务器宕机,跨域,防DDOS
    跨域和表单重复提交
    Socet
    Redis发布订阅
    MySQL和Oracle的区别
    Redis事务、持久化、发布订阅
    Redis主从复制和哨兵模式
    Idea中使用Redis的Java客户端和Jedis
    Redis介绍及命令
  • 原文地址:https://www.cnblogs.com/suchi/p/3988895.html
Copyright © 2011-2022 走看看