`
touchinsert
  • 浏览: 1329791 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

asp.net 文本框输入时的自动完成

 
阅读更多

本文以http://hi.baidu.com/kb81/blog/item/6f7e040848be85d162d98634.html相关内容为基础

Default.aspx

Code
<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><%@PageLanguage="C#"AutoEventWireup="true"CodeFile="Default.aspx.cs"Inherits="_Default"%>

<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<htmlxmlns="http://www.w3.org/1999/xhtml">
<headrunat="server">
<title></title>
<scripttype="text/javascript"language="javascript">
varXMLHttpReq;
varcompleteDiv;
varinputField;
varcompleteTable;
varcompleteBody;
//创建XMLHttpRequest对象
functioncreateXMLHttpRequest(){
if(window.XMLHttpRequest){//Mozilla浏览器
XMLHttpReq=newXMLHttpRequest();
}
elseif(window.ActiveXObject){//IE浏览器
try{
XMLHttpReq
=newActiveXObject("Msxml2.XMLHTTP");
}
catch(e){
try{
XMLHttpReq
=newActiveXObject("Microsoft.XMLHTTP");
}
catch(e){}
}
}
}

//发送匹配请求函数
functionfindNames(){
inputField
=document.getElementById("names");
completeTable
=document.getElementById("complete_table");
completeDiv
=document.getElementById("popup");
completeBody
=document.getElementById("complete_body");
if(inputField.value.length>0){
createXMLHttpRequest();
varurl
="Default2.aspx?names="+escape(inputField.value);//
XMLHttpReq.open("GET",url,true);
XMLHttpReq.onreadystatechange
=processMatchResponse;//指定响应函数
XMLHttpReq.send(null);//发送请求
}else{
clearNames();
}
}

//处理返回匹配信息函数
functionprocessMatchResponse(){
if(XMLHttpReq.readyState==4){//判断对象状态
if(XMLHttpReq.status==200){//信息已经成功返回,开始处理信息
setNames(XMLHttpReq.responseXML.getElementsByTagName("res"));
}
else{//页面不正常
window.alert("您所请求的页面有异常。");
}
}
}

//生成与输入内容匹配行
functionsetNames(names){

clearNames();
varsize
=names.length;

setOffsets();
varrow,cell,txtNode;
for(vari=0;i<size;i++){
varnextNode
=names[i].firstChild.data;
row
=document.createElement("tr");
cell
=document.createElement("td");
cell.onmouseout
=function(){
this.className='mouseOver';
};
cell.onmouseover
=function(){
this.className='mouseOut';
};
cell.setAttribute(
"bgcolor","#ffddcc");
cell.setAttribute(
"border","0");
cell.onclick
=function(){
completeField(
this);
};
txtNode
=document.createTextNode(nextNode);
cell.appendChild(txtNode);
row.appendChild(cell);
completeBody.appendChild(row);
}
}

//设置显示位置
functionsetOffsets(){
completeTable.style.width
="auto";//显示自动完成的提示框宽度自动伸展或缩小
varleft=calculateOffset(inputField,"offsetLeft");
vartop
=calculateOffset(inputField,"offsetTop")+inputField.offsetHeight;
completeDiv.style.border
="black1pxsolid";
completeDiv.style.left
=left+"px";
completeDiv.style.top
=top+"px";
}

//计算显示位置
functioncalculateOffset(field,attr){
varoffset
=0;
while(field){
offset
+=field[attr];
field
=field.offsetParent;
}
returnoffset;
}

//填写输入框
functioncompleteField(cell){
inputField.value
=cell.firstChild.nodeValue;
clearNames();
}

//清除自动完成行
functionclearNames(){
varind
=completeBody.childNodes.length;
for(vari=ind-1;i>=0;i--){
completeBody.removeChild(completeBody.childNodes[i]);
}
completeDiv.style.border
="none";
}

</script>
</head>
<body>
<formid="form1"runat="server">
<h1>
Dictionary
</h1>
<pstyle="text-align:center;">
<labelfor="names">
Search:
<asp:TextBoxID="names"runat="server"></asp:TextBox></label>
<asp:ButtonID="Button1"runat="server"Text="Go"/>
</p>
<divstyle="position:absolute;"id="popup"runat="server">
<tableid="complete_table"border="0"cellspacing="0"cellpadding="0"style="background-color:#cceeff;">
<tbodyid="complete_body">
</tbody>
</table>
</div>
</form>
</body>
</html>
Default.aspx.cs
Code
<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Web;
usingSystem.Web.UI;
usingSystem.Web.UI.WebControls;

publicpartialclass_Default:System.Web.UI.Page
{
protectedvoidPage_Load(objectsender,EventArgse)
{
this.names.Attributes.Add("onKeyup","findNames();");
}
}
Default2.aspx.cs
Code
<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Web;
usingSystem.Web.UI;
usingSystem.Web.UI.WebControls;
usingSystem.Text;

publicpartialclassDefault2:System.Web.UI.Page
{
protectedvoidPage_Load(objectsender,EventArgse)
{
Response.Clear();
Response.ContentType
="text/xml";//设置输出的格式为XML
Response.Charset="UTF-8";//设置输出的编码为UTF-8
this.GetXmlData();

}

privatevoidGetXmlData()
{
//这是用来获取下拉列表框中下面提示的项目数据,获取的数据用XML格式输出
string[]names=newstring[]{"a","ab","abc","a1","a12","1","12","123"};

stringstrPara=Request.QueryString["names"].ToString();//传过来的查询参数

varnameQuery
=fromnameinnames
wherename.ToString().StartsWith(strPara)
selectname;

StringBuilderxmlData
=newStringBuilder();
xmlData.AppendLine(
@"<?xmlversion='1.0'encoding='UTF-8'?>");
xmlData.AppendLine(
@"<response>");

foreach(stringstrinnameQuery)
{
xmlData.AppendLine(
@"<res>"+str+"</res>");
}

xmlData.AppendLine(
@"</response>");
Response.Write(xmlData.ToString());
Response.End();
}

}

分享到:
评论

相关推荐

    asp.net 文本框回车事件

    在这段代码中,我们定义了一个ASP.NET文本框控件,并为其添加了`onkeypress`属性,将其值设置为前面定义的JavaScript函数`btnKeyDown()`。这样,每当用户在这个文本框中输入并按下回车键时,都会触发这个JavaScript...

    NET文本框输入显示相似记录信息

    在.NET开发中,文本框...通过以上步骤,你可以构建一个具备自动提示功能的.NET文本框,当用户输入时,实时显示与输入内容相似的记录信息。这种功能对于搜索框、筛选器或任何需要快速查找信息的场景都十分有用。

    ASP.net+AJAX智能匹配检索(自动完成)

    ASP.NET + AJAX 智能匹配检索(自动完成)是一种高效、实时的搜索技术,它允许用户在输入查询时提供即时的建议或匹配结果。在本文中,我们将深入探讨如何利用这两种技术实现一个动态的自动完成搜索功能。 首先,...

    ASP.NET输入文本框自动提示功能

    ASP.NET中的输入文本框自动提示功能是提高用户体验和效率的重要设计。这种功能允许用户在输入时获取相关的建议或预填充信息,类似于搜索引擎的自动补全。在ASP.NET中实现这样的功能,通常会结合JavaScript库,如...

    asp.net乱码解决方法

    asp.net乱码解决方法 1、从IE地址栏中直接输入这个地址,访问没错;  2、做一个静态页,其中包括这个超链接,点击访问也没错;  3、就是把这个链接添加到这个功能块中,点击访问那边接收到的是乱码。  一...

    .net_Ajax文本框自动完成示例

    总结起来,.NET Ajax文本框自动完成示例主要涉及.NET Framework、ASP.NET AJAX Control Toolkit、数据库操作、Web服务方法和JSON数据交换等技术。通过合理利用这些技术,我们可以创建出响应快速、用户体验良好的Web...

    ASP.NET自定义文本框控件(日历、IP、电话、数字等功能集成)

    总结来说,ASP.NET自定义文本框控件是通过继承和扩展基础TextBox控件来实现的,它集成了多种功能,如日期选择、电话号码验证、IP地址输入和焦点事件处理。通过这样的自定义,开发者可以创建出更符合业务需求、用户...

    asp.net自定义日期控件文本框样式

    在ASP.NET开发中,我们经常需要处理用户输入的日期,这时日期控件就显得尤为重要。本文将深入探讨如何实现一个自定义的日期控件,它能够以文本框样式展现,并在用户点击时弹出日期选择器,从而简化代码并提供更好的...

    asp.net 密码文本框

    本资源是关于如何在C#编程环境中使用ASP.NET的密码文本框的一个实例,免费分享给大家,旨在帮助开发者更好地理解和应用这一关键功能。 在ASP.NET中,`&lt;asp:TextBox&gt;`控件可以设置为密码类型,通过添加`TextMode=...

    ASP.NET源码——atlas拼音首字母文本框自动完成源码.zip

    此源码文件"ASP.NET源码——atlas拼音首字母文本框自动完成源码.zip"显然是一个使用ASP.NET实现的特定功能模块,即拼音首字母文本框的自动完成功能。在网页设计中,这种功能可以极大地提升用户体验,帮助用户快速...

    ASp.net 文本框(TextBox)计算,判断输入的是否是数字

    在ASP.NET中,文本框(TextBox)是一种常用的控件,用于接收用户输入的数据。在处理用户输入时,经常需要对数据进行验证,确保输入符合预期的格式,例如只接受数字。在提供的代码示例中,涉及到的核心知识点包括: ...

    asp.net 记住密码 自动登录

    在ASP.NET开发中,"记住密码"和"自动登录"功能是提高用户体验的重要特性,尤其在用户频繁访问网站时。本教程将详细讲解如何利用Visual Studio 2010实现这些功能。 首先,我们需要理解ASP.NET的身份验证机制。默认...

    Asp.net 文本框全选的实现

    在Asp.net中,我们可以通过添加JavaScript事件来实现在鼠标滑过文本框时自动全选内容。以下有两种方法: 方法一: ```html &lt;asp:TextBox runat="server" onMouseOver="this.focus();this.select()"&gt;dsdsds&lt;/asp:...

    [其他类别]atlas拼音首字母文本框自动完成源码_autocompletepinyin(ASP.NET源码).rar

    【标题】中的“atlas拼音首字母文本框自动完成源码”是指一种ASP.NET应用程序,它使用了Atlas框架,提供了一种功能,即在文本框中输入拼音时,能够自动显示出与输入拼音首字母匹配的建议词汇。Atlas是微软开发的一个...

    ASP.NET-[其他类别]atlas拼音首字母文本框自动完成源码.zip

    这个压缩包文件"ASP.NET-[其他类别]atlas拼音首字母文本框自动完成源码.zip"包含了使用ASP.NET开发的一个特定功能的源代码,即拼音首字母文本框的自动完成功能。 "Atlas"是ASP.NET的一个早期版本的UI库,它提供了...

    既可以输入也可以选择的下拉框,.NET结合jquery

    既可以输入也可以选择的下拉框,.NET结合jquery实现的 简单的实现 样图 http://hi.csdn.net/attachment/201004/8/1382310_1270735139yGz3.jpg

    asp.net大作业

    【ASP.NET大作业】是一个基于ASP.NET技术完成的项目,主要展示了如何利用.NET框架和ASP.NET Web应用程序开发平台来构建一个高效、用户友好的Web应用。这个大作业可能包括了数据库交互、文档管理等多个功能模块,旨在...

Global site tag (gtag.js) - Google Analytics