我想利用AutoCompleteExtender控件+WebService实现自动完成功能,但不知为什么总是不能达到效果,在TextBox控件中输入文字时,界面上没有任何反应;程序调试中在WebService方法中设置了一个断点,发现总运行不到WebService中去。
    麻烦各位帮我检查一下,谢拉,在线等……代码如下:
Web页面前台代码:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="AutoComplete.WebForm1" %><%@ Register Assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
    Namespace="System.Web.UI" TagPrefix="asp" %><%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc1" %><!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 id="Head1" runat="server">
    <title>无标题页</title>
</head><body>
    <form id="form1" runat="server">
    <div>
    <asp:ScriptManager  ID="ScriptManager1" runat="server">
        </asp:ScriptManager >
    <asp:textbox ID="tb_Test" runat="server"></asp:textbox>
        
<cc1:AutoCompleteExtender ID="AutoCompleteExtender1"  runat="server" 
 TargetControlID="tb_Test"
  MinimumPrefixLength="1" ServicePath="WebService1.asmx"
   ServiceMethod="GetList">
   </cc1:AutoCompleteExtender>
        </div>
    </form>
</body>
</html> WebService代码:
 using System;
using System.Data;
using System.Web;
using System.Collections;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.ComponentModel;
using System.Web.Script.Services;namespace AutoComplete
{
    /// <summary>
    /// WebService1 的摘要说明
    /// </summary>
    [WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [ScriptService()] 
    [ToolboxItem(false)]
    public class WebService1 : System.Web.Services.WebService
    {        [WebMethod]
        public string HelloWorld()
        {
            return "Hello World";
        }        [WebMethod]
        [ScriptMethod]
        public string[] GetList(string prefixText)
        {
            return new string[] { "刘备, 刘禅, 刘璋, 刘表" };
        }
    }
}

解决方案 »

  1.   

     <asp:ScriptManager  ID="ScriptManager1" EnablePageMethods="True" runat="server">
            </asp:ScriptManager >加上这个属性试试
      

  2.   

    AutoCompleteExtender 有很多属性,是不是少写了
      

  3.   

    大家可以把这些代码Copy到本机试一下,看下能否运行,麻烦了……
      

  4.   

     放到UpdatePanel里面试一下!
      

  5.   

    <httpHandlers>
    <remove verb="*" path="*.asmx"/>
    <add verb="*" path="*.asmx" validate="false" 
    配置文件中加这个
    type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
    <add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
    <add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="false"/> </httpHandlers>
      

  6.   

    <httpHandlers>
    <remove verb="*" path="*.asmx"/>
    <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
    <add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
    <add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="false"/> </httpHandlers>
      

  7.   

    记得网上有个视频专门讲这个的,建议楼主找一下,写得非常清楚        <asp:ScriptManager ID="ScriptManager1" runat="server">
            </asp:ScriptManager>
            &nbsp;
            <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>&nbsp;
            <cc1:AutoCompleteExtender ID="AutoCompleteExtender1" runat="server" ServiceMethod="auto"
                ServicePath="ws.asmx" TargetControlID="TextBox1" CompletionInterval="100" MinimumPrefixLength="1">
            </cc1:AutoCompleteExtender>[WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [System.Web .Script .Services.ScriptService]
    public class ws : System.Web.Services.WebService {    public ws () {        //如果使用设计的组件,请取消注释以下行 
            //InitializeComponent(); 
        }    [WebMethod]
        public string[] auto(string prefixText,int count)
        {
            string[] tmp = new string[count];
            tmp[0] = "qwer";
            tmp[1] = "asdf";
            tmp[2] = "erty";
            tmp[3] = "zxcv";
            tmp[4] = "sdff";
            tmp[5] = "kjjk";
            tmp[6] = "asddfs";
            tmp[7] = "345h";
            tmp[8] = "tyi";
            tmp[0] = "7897";
            return tmp;
        }
      

  8.   

    zyaccp30,我在Web.config中已经加了那些配置了
      

  9.   

    yrj_star,你写的代码测试能通过不?我发现我写的跟你的基本上是一样的
      

  10.   

    怎么看都没有问题,但是楼主的代码硬是不能调用webservice
     <cc1:AutoCompleteExtender
                                runat="server" 
                                ID="AutoCompleteExtender1" 
                                TargetControlID="TB_STD_i"
                                ServicePath="STDPersueAutoCom.asmx" 
                                ServiceMethod="GetBZDH"
                                MinimumPrefixLength="1" 
                                CompletionInterval="1000"
                                EnableCaching="true"
                                CompletionSetCount="20" 
                                CompletionListCssClass="autocomplete_completionListElement" 
                    CompletionListItemCssClass="autocomplete_listItem" 
                    CompletionListHighlightedItemCssClass="autocomplete_highlightedListItem"/>
    我换成楼主的代码就调用不了,改回来就行了,除了3个新加的样式,我硬是没有找到区别来
    我也困惑了
      

  11.   

    yrj_star发了一个程序给我可以用,我比较一下看是什么问题,到时把找到的问题跟大家分享一下
      

  12.   

    [System.Web.Script.Services.ScriptService]
    lz这句好像 没加吧!