咨询电话:186 7916 6165 咨询电话:186 7916 6165 (微信同号)    在线QQ:181796286
NEWS BLOG ·
学无止境
关注开优网络 关注前沿
Excel导入导出
封装的MSSQL的数据库操作类

ASP.NET Web 开发之Ajax自动提示

发表日期:2016-02-26    文章编辑:南昌开优网络    浏览次数:3999    标签:ASP.NET应用

<body onclick="out()">
搜索:
    <asp:TextBox ID="txtkey" onkeyup="update();" runat="server"></asp:TextBox>
    <asp:Button ID="btnKey" runat="server" Text="搜索" />
    <div id="tisi"></div>
#tisi
{
    width: 190px;
    height: 200px;
    display: none;
    border: 1px solid #ccc;
    margin-left: 52px;
    z-index: 999;
    position: absolute;
    background-color:White;
}

    <script src="JS/jquery-1.6.1.min.js" type="text/javascript"></script>
    <script type="text/javascript" language="javascript">
/* ajax异步获取数据 */
        function update() {           
            $("#tisi").show(); //显示div
            var key = $("#<%=txtkey.ClientID %>").val();//获取文本框的值
            var url = "gettisi.ashx?key=" + encodeURI(key) + "&t=" + new Date().valueOf();//通过url传入编码的key并加上时间
            $.get(url, function (data) {//jquery的get方法返回获取的值
                $("#tisi").html(data);
            });
        }
/* 鼠标移到ITEM上时有背景颜色 */
        function itemover(obj) {
            $(obj).css("backgroundColor", "#ccc");
        }
/* 鼠标移出时背景变白 */
        function itemout(obj) {
            $(obj).css("backgroundColor", "");           
        }
/* 设置文本框的值 */
        function settxt(obj) {
            $("#<%=txtkey.ClientID %>").val($(obj).text());//把获取的值返回到文本框中
            $("#tisi").hide();//隐藏div
        }
/* 单击body的其它区域时 */
        function out() {
            $("#tisi").hide();
        }
    </script>


gettisi.ashx一般处理程序
public void ProcessRequest(HttpContext context)
{
    string key = context.Request.QueryString["key"];
    if (string.IsNullOrEmpty(key))
    {
        context.Response.Write("");
    }
    else
    {
        key = context.Server.UrlDecode(key);
        DataSet ds = new DAL.LinkDAL_own().GetLikelinkname(key);
        //DataSet ds = new DAL.LinkDAL().GetLikelinkname(key);

        DataTable dt = ds.Tables[0];
        StringBuilder sb = new StringBuilder();
        foreach (DataRow item in dt.Rows)
        {
            sb.Append("<div class='item' onmouseover='itemover(this)' onmouseout='itemout(this)' onclick='settxt(this)'>" + item["linkname"] + "</div>");
        }
        context.Response.Write(sb.ToString());
    }
}

DAL层中的代码
public DataSet GetLikelinkname(string key)
{
    string sql = "select top 10 linkname from test_link where linkname like '%" + key + "%'";
    Database db = DatabaseFactory.CreateDatabase();
    DbCommand dbCommand = db.GetSqlStringCommand(sql);
    return db.ExecuteDataSet(dbCommand);
}

自定义操作类的DAL层中代码
public DataSet GetLikelinkname(string key)
{
    string sql = "select top 10 linkname from test_link where linkname like '%" + key + "%'";
    MSSQLHelper h = new MSSQLHelper();
    h.CreateCommand(sql);
    DataTable dt = h.ExecuteQuery();
    DataSet ds = new DataSet();
    ds.Tables.Add(dt);
    return ds;
}