第一次使用AutoCompleteExtender控件.
安装网上的方法下载了AjaxControlToolkit-NoSource.
1.直接安装AjaxControlExtender目录下面的AjaxControlExtender.vsi安装完成后vs2005新建项目的时候出现了AjaxControlToolkitWebSite项目.
2.把SampleWebSite\bin目录下面的
AjaxControlToolkit.dll和AjaxControlToolkit.pdb文件拷贝到了D:\program files\Microsoft ASP.NET\ASP.NET 2.0 AJAX Extensions\v1.0.61025\AjaxControlToolkit下面.
3.打开vs2005,新建-
AjaxControlToolkitWebSite项目.在工具栏中添加选项卡,名字叫AjaxControlToolkit.在这个选项卡中点击鼠标右键选择项,选择D:\program files\Microsoft ASP.NET\ASP.NET 2.0 AJAX Extensions\v1.0.61025\AjaxControlToolkit下面的AjaxControlToolkit.dll
配置环境完成.请看我这个过程有没有问题??
安装网上的方法下载了AjaxControlToolkit-NoSource.
1.直接安装AjaxControlExtender目录下面的AjaxControlExtender.vsi安装完成后vs2005新建项目的时候出现了AjaxControlToolkitWebSite项目.
2.把SampleWebSite\bin目录下面的
AjaxControlToolkit.dll和AjaxControlToolkit.pdb文件拷贝到了D:\program files\Microsoft ASP.NET\ASP.NET 2.0 AJAX Extensions\v1.0.61025\AjaxControlToolkit下面.
3.打开vs2005,新建-
AjaxControlToolkitWebSite项目.在工具栏中添加选项卡,名字叫AjaxControlToolkit.在这个选项卡中点击鼠标右键选择项,选择D:\program files\Microsoft ASP.NET\ASP.NET 2.0 AJAX Extensions\v1.0.61025\AjaxControlToolkit下面的AjaxControlToolkit.dll
配置环境完成.请看我这个过程有没有问题??
1.新建一个webservies.名叫AutoComplete.asmx
using System;
using System.Web;
using System.Web.Script.Services;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Collections;
using System.IO;
using Microsoft.Web.Preview.Script;
using System.Web.Script.Services;
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.Web.Script.Services.ScriptService]
public class AutoComplete : System.Web.Services.WebService
{
public AutoComplete()
{
//如果使用设计的组件,请取消注释以下行
//InitializeComponent();
}
[WebMethod]
public string HelloWorld() {
return "Hello World";
}
[WebMethod]
public string[] GetList(string prefixText, int count)
{
string[] returnValue1 = { "张飞", "张苞", "张郃", "张辽" };
string[] returnValue2 = { "刘备", "刘禅", "刘璋", "刘表" };
switch (prefixText.ToLower())
{
case "张":
return returnValue1;
case "zhang":
return returnValue1;
case "zh":
return returnValue1;
case "刘":
return returnValue2;
case "liu":
return returnValue2;
case "l":
return returnValue2;
default:
return new string[0];
}
}
}
编译没有问题,发布到本地目录中.在iis中新建一个虚拟目录,指向该目录.在iis中浏览HelloWorld()和GetList()方法都没有问题.
新建一个AjaxControlToolkitWebSite项目,增加web引用,引用上面的webservices.
Default.aspx的内容:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server" />
<div>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<ajaxToolkit:AutoCompleteExtender
ID="AutoCompleteExtender1" runat="server"
ServiceMethod="GetList"
ServicePath="http://127.0.0.1:8081/AutoComplete.asmx"
Enabled="true" MinimumPrefixLength="1"
TargetControlID="TextBox1">
</ajaxToolkit:AutoCompleteExtender>
<br />
<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />
</div>
</form>
</body>
</html>Default.aspx.cs的内容:
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class _Default : System.Web.UI.Page
{
AutoComplete.AutoComplete ac = new AutoComplete.AutoComplete();
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
this.TextBox2.Text = ac.HelloWorld();
}
}
运行该页面,点击button安装,可以从webservices上面获取Hello World.
但是在第一个textbox中,输入zh确没有反映(自动填充下拉框没有出现),为什么?
runat="server"
BehaviorID="AutoCompleteEx"
ID="autoComplete1"
TargetControlID="TxtCondition"
ServicePath="../WebService/AutoComplete.asmx"
ServiceMethod="GetUserList"
MinimumPrefixLength="1"
CompletionInterval="200"
EnableCaching="true"
CompletionSetCount="8"
DelimiterCharacters=";, :"
UseContextKey="false">
<Animations>
<OnShow>
<Sequence>
<OpacityAction Opacity="0" />
<HideAction Visible="true" />
<ScriptAction Script="
var behavior = $find('AutoCompleteEx');
if (!behavior._height) {
var target = behavior.get_completionList();
behavior._height = target.offsetHeight - 2;
target.style.height = '0px';
}" />
<Parallel Duration=".4">
<FadeIn />
<Length PropertyKey="height" StartValue="0" EndValueScript="$find('AutoCompleteEx')._height" />
</Parallel>
</Sequence>
</OnShow>
<OnHide>
<Parallel Duration=".4">
<FadeOut />
<Length PropertyKey="height" StartValueScript="$find('AutoCompleteEx')._height" EndValue="0" />
</Parallel>
</OnHide></Animations>
</cc1:AutoCompleteExtender>
并没有要你添加WEB引用,另外Web Service的签名要和微软提供的一致