第一次使用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
配置环境完成.请看我这个过程有没有问题??

解决方案 »

  1.   

    使用AutoCompleteExtender的代码是这样的:
    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确没有反映(自动填充下拉框没有出现),为什么?
      

  2.   

    看下AjaxControlToolkit的sample website就行啦
      

  3.   

     <cc1:AutoCompleteExtender 
             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的签名要和微软提供的一致