请给个实例,asp.net autocomplete 自动完成

netboygg 2010-09-20 03:51:47
asp.net 自动完成下拉菜单,并依据输入的内容 从数据库里查找该行其他字段 并填充进相应的web控件里。
谢谢。
...全文
606 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
chen_ya_ping 2010-11-18
  • 打赏
  • 举报
回复
楼主百度,Google上多的是,你如果看了人家的代码,还有什么错误的话,可以来问。这样的话对你成长有帮助。
netboygg 2010-09-23
  • 打赏
  • 举报
回复
遇到自动完成的在数据库里会有很多相同的改字段,怎么知道,我选择的是要选择的那项?
R_zhanche 2010-09-21
  • 打赏
  • 举报
回复
收藏了
打一壶酱油 2010-09-20
  • 打赏
  • 举报
回复
下载 jquery.autocomplete.js ,然后很简单的 ,上官网或者随便 google 上复制 那段代码,根据自己的需要修改一下。前台代码要自己写的大概四五行(太幸福了),后台取数据的话对于你来说应该很简单吧,一般 response.write json 格式的数据 返回。
even0220 2010-09-20
  • 打赏
  • 举报
回复
建议楼主用JSON返回数据,这样返回的数据如果是多个,自己可以控制

然后使用层,JS控制。样式之类自己写。

我现在也在写这个智能提示。

仅仅就是使用了JSON返回数据。其他的层的控制,CSS都是自己的写的,还加了ENTER,TAB,UP,DOWN4个键的键盘事件!
还可以返回多个数据,分别自动输入在多个文本框。

如果仅仅用别人的jquery autocomplete组件,自我觉得会有局限性。没有扩展性。
laoyingisme 2010-09-20
  • 打赏
  • 举报
回复
You can download from here : www.51aspx.com
qqdd2716 2010-09-20
  • 打赏
  • 举报
回复
前台页面:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="HotKeyTest.aspx.cs" Inherits="Test.HotKeyTest" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>搜索建议Demo</title>

<script language="javascript" type="text/javascript" src="jquery-1.4.2.js"></script>

<%if (false)
{ %>

<script type="text/javascript" src="jquery-1.4.2-vsdoc.js"></script>

<%} %>
<style type="text/css">
.CInput
{
border: solid 1px gray;
width: 300px;
}
#divSuggestions
{
border: solid 1px gray;
width: 300px;
background: #fff;
display: none;
}
#divSuggestions span
{
display: block;
padding: 3px;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<div>
<h1>
搜索建议</h1>
<hr />
<table style="border-collapse: collapse;">
<tr>
<td>
<asp:TextBox ID="txtInput" runat="server" CssClass="CInput" onkeyup="sendRqt(this)" AutoComplete="false"></asp:TextBox>
<asp:Button ID="Button1" runat="server" Text="Submit" />
</td>
</tr>
<tr style="position: absolute;">
<td>
<div id="divSuggestions">
123
</div>
</td>
</tr>
</table>
</div>
</form>

<script type="text/javascript">
var xhr;
var isIe = window.navigator.appName.indexOf("Netscape") == -1 ? true : false;

function crtRqt() {
if (window.ActiveXobject)
xhr = new ActiveXObject("Microsoft.XMLHTTP");
else xhr = new XMLHttpRequest();
}
function sendRqt(srcElm) {
var sInput = srcElm.value;
if (sInput != "") {
var url = "HotKeyTest.aspx?t=" + new Date().getTime() + "&w=" + escape(sInput);
crtRqt();
xhr.onreadystatechange = hdlRsp;
xhr.open("GET", url, true);
xhr.send(null);
}
else $("#divSuggestions").hide();
}
function hdlRsp() {
if (xhr.readyState == 4 && xhr.status == 200) {
var rspText = xhr.responseText;
if (rspText != "") {
var arrRspText = xhr.responseText.split(',');
var sInnerHtml = "";
for (var i = 0; i < arrRspText.length; ++i) {
sInnerHtml += "<span onmouseover='setStyle(this,true)' onmouseout='setStyle(this,false)'"
+ " onclick=setInput(this);$('#divSuggestions').hide();>" + arrRspText[i] + "</span>";
}
$("#divSuggestions").html(sInnerHtml);
$("#divSuggestions").show();
}
else $("#divSuggestions").hide();
}
}
function setStyle(srcElm, bOver) {
srcElm.style.background = bOver ? "orange" : "";
}
function setInput(srcElm) {
$("#<%=txtInput.ClientID %>").val(srcElm.innerHTML);
}
</script>

</body>
</html>



后台CS文件:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Collections.Specialized;
using System.Text;

namespace Test
{
public partial class HotKeyTest : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string strInput = string.IsNullOrEmpty(Request.QueryString["w"]) ? string.Empty : Request.QueryString["w"];
if (strInput.Trim().Length != 0)
{
//string sss = (HttpUtility.UrlDecode(Request.QueryString["w"]));
NameValueCollection utf8Requests = HttpUtility.ParseQueryString(Request.Url.Query, Encoding.UTF8);
Suggeste(utf8Requests.Get("w"));
}
}

private void Suggeste(string originalStr)
{
SqlConnection conn = new SqlConnection("data source=localhost;database=TestDB;user id=sa;password=19831016");
string cmdText = "SELECT TOP 10 AdminLoginId FROM AdminsInfo WHERE AdminLoginId LIKE @w";
SqlParameter para = new SqlParameter("@w", string.Format("{0}%", originalStr));
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandText = cmdText;
cmd.Parameters.Add(para);
conn.Open();
SqlDataReader reader = cmd.ExecuteReader();
System.Text.StringBuilder sb = new System.Text.StringBuilder();
while (reader.Read())
{
sb.AppendFormat("{0},", reader[0]);
}
reader.Close();
conn.Close();
Response.ContentType = "text/plain";
Response.Clear();
if (sb.Length != 0)
{
Response.Write(sb.ToString().Remove(sb.Length - 1));
}
else
{
Response.Write(string.Empty);
}
Response.Flush();
Response.Close();
}
}
}

parverxiao 2010-09-20
  • 打赏
  • 举报
回复
http://www.zhiweinet.com/jiaocheng/2008-06/721p2.htm
七爷 2010-09-20
  • 打赏
  • 举报
回复
百度,谷歌

62,271

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧