• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >ASP.NET > ASP.NET搭配Ajax实现搜索提示功能

ASP.NET搭配Ajax实现搜索提示功能

作者:王波洋 字体:[增加 减小] 来源:互联网 时间:2017-05-11

王波洋通过本文主要向大家介绍了安装asp.net ajax,ajax实例 asp.net,jquery ajax asp.net,asp net ajax,asp.net等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

平时的软件开发中,信息的搜索是经常碰到的,增加搜索关键字提示是提高用户体验的一种很好的办法。今天就介绍下在ASP.NET如何利用AJAX来实现搜索的信息提示!
1.需要了解的一些知识点

(1)AJAX对象不同浏览器的创建

不同的浏览器对AJAX(XMLHttpRequest)对象的实现是不一样的,例如IE浏览器是通过ActiveX控件来实现AJAX对象。而其他一些浏览器比如火狐,它将AJAX对象实现成了一个浏览器内部的对象叫XMLHttpRequest,所以不同的浏览器创建AJAX对象的方式也就不同,那么我们来看看不同浏览器之间创建AJAX对象的方式:

在IE浏览器下面的创建:

   //IE浏览器
    try {
      //IE5.0
      httpRequest = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
      try {
        //IE5.5 以上版本
        httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
    } catch (e) { }

</div>

 在火狐浏览器下面的创建:

//火狐, Safari 等浏览器
httpRequest = new XMLHttpRequest();
</div>

多浏览器AJAX对象创建函数:

function createAjaxObj() {
  var httpRequest = false;

  //判断是否包含XMLHttpRequest对象 PS:将来IE高也有可能继承次对象
  if (window.XMLHttpRequest) {
    //火狐 , Safari 等浏览器
    httpRequest = new XMLHttpRequest();
    if (httpRequest.overrideMimeType)
      httpRequest.overrideMimeType('text/xml');

  }//判断是否支持Active控件对象
  else if (window.ActiveXObject) {
    //IE浏览器
    try {
      //IE5.0
      httpRequest = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
      try {
        //IE5.5以上
        httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
    } catch (e) { }
    }
  }
  //返回创建好的AJAX对象
  return httpRequest;
}
</div>

(2)文本框内容改变的事件在不同浏览器下的使用

 文本框内容改变的事件目前来说还没有一个标准的版本。我们目前只关心IE与火狐好了,那么在IE和火狐下这两个时间分别怎么表示呢?

IE: onpropertychange

FireFox: oninput

  那么如何在页面加载时,根据浏览器给文本框附加对应的change事件呢?

1.JS如何判断浏览器版本                  

//IE浏览器
if (navigator.userAgent.indexOf("MSIE") > 0)
{ }

//火狐浏览器
if (isFirefox = navigator.userAgent.indexOf("Firefox") > 0)
{}

</div>

 2.根据浏览器版本给文本框附加对应事件

function getOs() {
  //判断浏览器类型 
    if (navigator.userAgent.indexOf("MSIE") > 0) {
    //此时假设文本框id为'txtSearch'
    //为文本框附加IE所支持的事件
    document.getElementById('txtSearch').attachEvent("onpropertychange", search);
    OsTyep = "MSIE";
  } else if (navigator.userAgent.indexOf("Firefox") > 0) {
    //此时假设文本框id为'txtSearch'
    //为文本框附加火狐所支持的事件
    document.getElementById('txtSearch').addEventListener("input", search, false);
    OsTyep = "Firefox";
  }
}
</div>

 3.根据浏览器版本给文本框清除对应事件

function ClearOS() {
    if (navigator.userAgent.indexOf("MSIE") > 0) {
        //此时假设文本框id为'txtSearch'
        //为文本框清除IE所支持的事件
        document.getElementById('txtSearch').detachEvent("onpropertychange", search);
        OsTyep = "MSIE";
    } else if (navigator.userAgent.indexOf("Firefox") > 0) {
        //此时假设文本框id为'txtSearch'
        //为文本框清除火狐所支持的事件
        document.getElementById('txtSearch').removeEventListener("input", search, false);
        OsTyep = "Firefox";
    }
}

二、客户端的设计

(1)实现流程的分析

了解完以上知识点之后,我们来看一下实现搜索提示的一个整体流程:

                   1) 首先客户端通过文本框输入事件捕获输入的关键字

                   2)  在通过我们之前创建好的AJAX对象提交给服务器

                   3) 服务器接受提交的关键字,进行查询将结果集返回给客户端进行显示

 流程如下:

 (2)样式的编写

那么接下来我们来看一下样式,其中包括当文本框鼠标移动上去给边框加颜色与搜索结果行选中的样式等,这里就不细说了,列举出来供参考:

 <style type="text/css" media="screen">
  body
  {
    font:11px arial;
  }
  /*设置提示提示列表上的样式表*/
  .search_link
  {     
     background-color:#FFFFFF;
     cursor: pointer;
     line-height:24px;
     text-indent:6px;
  }
  /*设置当鼠标移动到提示列表上的样式表*/
  .search_link_over
  {   
     background-color:#E8F2FE;
     cursor: pointer;
     line-height:24px;
     text-indent:6px;

  }
  
  /*设置显示搜索提示div的样式表*/
  #search_div
  {
    position:absolute;
    background-color:#FFFFFF;
    text-align:left;
    border:1px solid #000000;
    border-top:0px;
    display:none;
    min-width:553px;
    width:553px;
  }
  
  /*文本框样式*/
  .mainInput {
  line-height: 26px;
  height: 28px;
  width: 550px;
  font-size: 16px;
  font-family: "微软雅黑", "宋体", Candara;
  font-weight: normal;
  color: #666;
  margin: auto;
  border: none;
  text-indent: 8px;
}
  
  /*鼠标放上文本框样式*/
  .mainInputOver {
  width:552px;
  height:30px;
  border-top-width: 1px;
  border-right-width: 1px;
  border-bottom-width: 1px;
  border-left-width: 1px;
  border-top-style: solid;
  border-right-style: solid;
  border-bottom-style: solid;
  border-left-style: solid;
  border-top-color: #b7b7b7;
  border-right-color: #d0d0d0;
  border-bottom-color: #d0d0d0;
  border-left-color: #d0d0d0;
}
/*鼠标离开文本框样式*/
.mainInputFocus {
  width:552px;
  height:30px;
  border: 1px solid #41b5f2;
}

/*点击文本框样式*/
.myBorder
{
  width:552px;
  height:30px;
  border-top: 1px solid #CCCCCC;
  border-bottom: 1px solid #DDDDDD;
  border-left: 1px solid #DDDDDD;
  border-right: 1px solid #DDDDDD;  
}
  </style>
</div>

(3)aspx页面与ajax_search.js文件的编写

接下来就是一个比较重要的环节了,aspx页面与ajax_search.js文件中包含了整体包括显示与请求的方法例如:

1.页面的实现

<body onload="getOs()" onkeydown="if(event.keyCode==13)return false;">
  <form id="form1" runat="server">
  <div>
  <div class="myBorder" onmouseover="this.className='mainInputOver'" onmouseout="this.className='myBorder'" onclick="this.className='mainInputFocus'">
  <input type="text" id="txtSearch" name="txtSearch" onblur="HiddenDiv()" alt="SearchCriteria" autocomplete="off" class="mainInput" />
  </



 
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • ASP.NET使用ajax实现分页局部刷新页面功能
  • asp.net线程批量导入数据时通过ajax获取执行状态
  • ASP.NET中JQuery+AJAX调用后台
  • ASP.NET基于Ajax的Enter键提交问题分析
  • ASP.NET搭配Ajax实现搜索提示功能
  • 简单好用的ASP.NET分页类(支持AJAX、自定义文字)
  • Ajax+asp.net实现用户登陆
  • asp.net+ajax的Post请求实例
  • asp.net使用AJAX实现无刷新分页
  • asp.net+ajax+sqlserver自动补全功能实现解析

相关文章

  • 2017-05-11asp.net开发中常见公共捕获异常方式总结(附源码)
  • 2017-05-11.NET下文本相似度算法余弦定理和SimHash浅析及应用实例分析
  • 2017-05-11asp.net 使用驻留在页面中的Cache缓存常用可定时更新的数据
  • 2017-05-11C#实现HTTP协议迷你服务器(两种方法)
  • 2017-05-11Asp.net在线备份、压缩和修复Access数据库示例代码
  • 2017-05-11asp.net url重写的好处与方法
  • 2017-05-11KindEditor图片上传的Asp.net代码实例
  • 2017-05-11高仿Windows Phone QQ登录界面实例代码
  • 2017-05-11asp.net C#检查URL是否有效的方法
  • 2017-05-11ASP.NET MVC3手把手教你构建Web

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • ASP.NET Substitution 控件的使用方法
    • ASP.net与SQLite数据库通过js和ashx交互(连接和操作)
    • asp.net下大文件上传知识整理
    • 从ASP.NET得到Microsoft Word文档的代码
    • 解读ASP.NET 5 & MVC6系列教程(8):Session与Caching
    • Asp.net MVC 对所有用户输入的字符串字段做Trim处理的方法
    • ASP.NET MVC4入门教程(一):入门介绍
    • C# winform打印excel的方法
    • 使用 Salt + Hash 将密码加密后再存储进数据库
    • 提取HTML代码中文字的C#函数

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有