AjaxControlToolkit是一组控件的集合,可以实现自动补充文本框,点击文本框弹出日历,加水印等Ajax效果,包含40多个控件,具体实现效果如:http://www.asp.net/ajaxLibrary/AjaxControlToolkitSampleSite/Default.aspx
像百度搜索一样,根据用户输入自动联想相关词汇,借助AjaxControlToolkit中的AutoCompleteExtender控件很简单的实现,实现效果如下:
详细步骤:
一:Vs中安装AjaxControlToolkit AjaxControlToolkit安装到VS中(需要注意版本问题):
安装方法:http://www.asp.net/ajaxlibrary/act.ashx
相应版本提示:http://ajaxcontroltoolkit.codeplex.com/
二:Web页面中调用AutoCompleteExtender(页面中要提前Register,第二行代码)
复制代码 代码如下:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="HTML_editor.WebForm1" %>
<%@ Register TagPrefix="asp" Namespace="AjaxControlToolkit" Assembly="AjaxControlToolkit" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="Server" />
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:AutoCompleteExtender ID="AutoCompleteExtender1" runat="server"
TargetControlID="TextBox1"
CompletionSetCount="10"
EnableCaching="true"
MinimumPrefixLength="1"
CompletionInterval="100"
ServicePath="WebService.asmx"
ServiceMethod="GetEnglishName">
</asp:AutoCompleteExtender>
</div>
</form>
</body>
</html>
三:添加Web服务 WebService.asmx复制代码 代码如下:
using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Linq;
using System.Web;
using System.Web.Script.Services;
using System.Web.Services;
namespace HTML_editor
{
/// <summary>
/// WebService 的摘要说明
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
// 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消注释以下行。
[System.Web.Script.Services.ScriptService]
public class WebService : System.Web.Services.WebService
{
//从数据库中读取匹配信息
[WebMethod]
[ScriptMethod]
public string[] GetEnglishName(string prefixText, int count)
{
List<string> suggestions = new List<string>();//声明一泛型集合
SqlConnection con = new SqlConnection("server=.;database=Attendance;uid=sa;pwd=;");
con.Open();
SqlCommand com = new SqlCommand(" select [EnglishName] from [Employee] where [EnglishName] like '%t%' order by [EnglishName]", con);
SqlDataReader sdr = com.ExecuteReader();
while (sdr.Read())
{
suggestions.Add(sdr.GetString(0));
}
sdr.Close();
con.Close();
return suggestions.ToArray();
}
//直接用方法产生匹配信息
//[WebMethod]
//public string[] GetCompleteList(string prefixText, int count)
//{
// char c1, c2, c3;
// if (count == 0)
// count = 10;
// List<String> list = new List<string>(count);
// Random rnd = new Random();
// for (int i = 1; i <= count; i++)
// {
// c1 = (char)rnd.Next(65, 90);
// c2 = (char)rnd.Next(97, 122);
// c3 = (char)rnd.Next(97, 122);
// list.Add(prefixText + c1 + c2 + c3);
// }
// return list.ToArray();
//}
}
}
四:完成,运行Web页面即可看到文本框的自动补充效果,需要注意的地方如下:
AutoCompleteExtender控件参数说明:
1.TargetControlID:指定要实现提示功能的控件;
2.ServicePath:WebService的路径,提取数据的方法是写在一个WebService中的;
3.ServeiceMethod:写在WebService中的用于提取数据的方法的名字;
4.MinimumPrefixLength:用来设置用户输入多少字母才出现提示效果;
5.CompletionSetCount:设置提示数据的行数;
6.CompletionInterval:从服务器获取书的时间间隔,单位是毫秒。
WebService.asmx 需要注意的地方:
1.由于该WEB服务是为Ajax框架提供服务的,因此在类声明之前得加上属性声明:
[System.Web.Script.Services.ScriptService]
2.特别需要注意的是GetTextString这个方法。凡是为AutoCompleteExtender控件提供服务的方法都必需完全满足以下三个条件:
A.方法的返回类型必需为:string [];
B.方法的传入参数类型必需为:string , int;
C.两个传入参数名必需为:prefixText , count。
文本框输入的值传递到WebService中:
aspx:
复制代码 代码如下:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="TestSearch.aspx.cs" Inherits="TestSearch" %>
<%@ Register TagPrefix="asp" Namespace="AjaxControlToolkit" Assembly="AjaxControlToolkit" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<script type="text/javascript">
function OnTxtPersonInfoKeyDown() {
var val = document.getElementById("<%=TextBox1.ClientID %>").value;
var NameClientID = "<%=AutoCompleteExtender1.ClientID %>";
var acName = $find(NameClientID);
if (acName != null) {
acName.set_contextKey(val);
}
}
function OnTxtPersonInfoKeyDown2() {
var val = document.getElementById("<%=TextBox2.ClientID %>").value;
var NameClientID = "<%=AutoCompleteExtender2.ClientID %>";
var acName = $find(NameClientID);
if (acName != null) {
acName.set_contextKey(val);
}
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="Server" />
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:AutoCompleteExtender ID="AutoCompleteExtender1" runat="server"
TargetControlID="TextBox1"
CompletionSetCount="10"
EnableCaching="false"
FirstRowSelected="true"
UseContextKey="True"
MinimumPrefixLength="0"
CompletionInterval="100"
ServicePath="WebService.asmx"
ServiceMethod="GetEnglishName">
</asp:AutoCompleteExtender>
<br />
<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
<asp:AutoCompleteExtender ID="AutoCompleteExtender2" runat="server"
TargetControlID="TextBox2"
CompletionSetCount="10"
EnableCaching="false"
FirstRowSelected="true"
UseContextKey="True"
MinimumPrefixLength="0"
CompletionInterval="100"
ServicePath="WebService.asmx"
ServiceMethod="GetEnglishName">
</asp:AutoCompleteExtender>
</div>
</form>
</body>
</html>
aspx.cs
复制代码 代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class TestSearch : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
TextBox1.Attributes.Add("onkeydown", "return OnTxtPersonInfoKeyDown();");
TextBox2.Attributes.Add("onkeydown", "return OnTxtPersonInfoKeyDown2();");
}
}
webservice.asmx.cs
复制代码 代码如下:
<%@ WebService Language="C#" Class="WebService" %>
using System;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Web.Script.Services;
using System.Data;
using System.Data.SqlClient;
using System.Collections.Generic;
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
// 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消注释以下行。
[System.Web.Script.Services.ScriptService]
public class WebService : System.Web.Services.WebService
{
//从数据库中读取匹配信息
[WebMethod]
[ScriptMethod]
public string[] GetEnglishName(string prefixText, int count, string contextKey)
{
SQLHelper sqlH = new SQLHelper();
//contextKey = "t";
string strSql = " select [EnglishName] from [Employee] where [LeftDate] is null and [EnglishName] like '" + contextKey + "%' order by [EnglishName] ";
DataTable dt = sqlH.ExecuteQuery(strSql, CommandType.Text);
List<string> suggestions = new List<string>();//声明一泛型集合
suggestions.Clear();
if (dt.Rows.Count > 0)
{
for (int i = 0; i < dt.Rows.Count; i++)
{
suggestions.Add(dt.Rows[i][0].ToString());
}
}
return suggestions.ToArray();
}
}
相关推荐:
SEO优化知识全解析:提升网站排名的秘密武器,ai出错合集
怎么用AI写文:让创作更轻松,效率翻倍
《收录情况:数字时代的网络信息检索与价值体现》,山东全域营销推广软件客服电话
未来写作新方式原创AI文章的无限可能
SEO目标:让您的网站轻松登顶搜索引擎,优化购物网站的搜索
优化分析:提升企业效益的关键策略,山东大网站建设
seo需要什么器械,seo需要什么器械才能做 ,长续航ai纯电汽车
SEO管家:为您的网站保驾护航的智能SEO助手,网站推广作用有哪些类型
ChatGPT破解版:让人工智能助力你的工作与生活,ai cos帽
SEO快速优化排名:助你网站跃升搜索引擎首页,ai彩虹立体9怎么做
为什么做seo矩阵项目,为什么做seo矩阵项目不能做 ,怎么用ai写作
URL站长的崛起:打造高效网站运营的秘密武器,网站建设费用计算依据
SEO总结:如何通过优化提升网站排名与流量,关键词排名消失
seo能解决什么问题,seo会遇到哪些问题 ,挚爱花嫁ai
ChatGPT昨晚突然不能使用,背后真相令人意想不到!,edga ai
如何识别文章是否由AI写作:技巧与方法解析
ChatGPT,您的银行卡被拒绝了?别慌,这些方法帮您快速解决问题!,ai给那个标声调
ChatGPT怎么有梯子?突破网络限制,轻松畅享AI智能,ai对唱音响
SEO在广告领域的深度解析:如何利用SEO提升广告效果,网文写作ai工具
BingAdapter设置数据后没有显示数据?解决方案在这里!,ai中如何把图变形
SEO确实是企业增长的关键,这些技巧让你走在行业前沿,山东网站建设信息
SEO好吗?助力网站成功的关键之道,网站优化方案范文怎么写
ChatGPT不能访问,我的学术水平直线下降,泰州大数据ai艾灸价格
ChatGPTApp怎么调大字体?提升阅读体验,让文字更清晰,推荐ai音频
360ai答题-赋能教育,开启智能学习新纪元,ai 果汁
seo站内优化包括什么营销,seo站内优化操作流程 ,ai 玻璃图标
GPT优化:让你的工作与生活更高效、更智能,Ai__79
ChatGPT页面打不开怎么办?这些解决方法让你轻松访问AI助手!,分散ai
智能AI生成文章释放创作新可能
SEO运营工作是什么,seo公司运营 ,720516AI
SEO而且:打造高效网站流量增长的秘密武器,滨江网站推广营销
为什么seo对企业重要,seo对企业进行网络营销的价值 ,ai李沁换脸鲍鱼
SEO难吗?揭秘SEO背后的真相,让你轻松上手!,大旺百度网站推广
SEO优化的利器:提升网站排名的秘密武器,联想ai7g-3笔记本
丹东seo是什么怎么选,丹东spr ,黑发ai图
AI仿写文章:开启内容创作新纪元
ChatGPT打不开网页?看完这篇你就懂了!,国内ai写作安卓软件
ChatGPT网络故障报告从协调世界时(UTC)晚上1107左右开始激增,15分钟内引发广泛关注,ai无视进化
SEO新站优化指南:快速提升排名的必备技巧,海珠网站推广哪家有名
个性化广告:新时代营销的秘密武器,建设经营性网站怎么记账
SEO发明:引领数字时代营销革命的力量,速卖通外贸推广网站
ChatGPT不登录,如何畅享AI的智能服务?,手信ai
SEO需要:如何提升网站排名,打造高效营销利器,seo怎么推广关键词
怎样用AI写文章?快速高效创作新技能!
什么是seo行业,seo是什么职业做什么的 ,ai标题字体效果
ChatGPT登录界面都不显示了?可能是这些原因导致的!,上海小学ai智能课
SEO与SEM策略:提升网站流量与品牌曝光的双剑合璧,ai补图
GoogleGPT-引领未来智能对话的革命,灵境ai画质
SEO资讯:最新趋势,提升网站排名,快速突破流量瓶颈,廊坊seo推广咨询服务
UCMS:引领智慧医疗新时代,打造数字化健康未来,推广工作谈营销