自动建议使用AJAX

时间:2012-11-12 13:34:41

标签: c# asp.net ajaxcontroltoolkit

我正在尝试为文本框实现自动建议。我检查了其他帖子似乎没有什么似乎对我有用。我在网络应用程序和网站上都尝试过。请在我的代码中找出错误。当我输入字母时在文本框中没有任何反应。我可以在浏览器中看到webservice结果。

delete.aspx

  <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Delete.aspx.cs"
   Inherits="WebApplication2.Delete" %>
  <%@ Register TagPrefix="ajaxToolkit" Namespace="AjaxControlToolkit" 
  Assembly="AjaxControlToolkit"%>
<!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>Untitled Page</title>
    </head>

<body>  
  <form id="form1" runat="server">  
    <div> 
     <asp:ScriptManager ID="ScriptManager1" EnablePageMethods="true" 
      EnablePartialRendering="true" 
      runat="server">
     </asp:ScriptManager>  
           <asp:TextBox ID="myTextBox" runat="server" Width="400px" ></asp:TextBox> 
           <ajaxToolkit:AutoCompleteExtender  runat="server"    ID="autoComplete1" 
             TargetControlID="myTextBox"
             ServiceMethod="Information"
             ServicePath="~/WebService1.asmx"
             OnClientItemOut="Information"
             MinimumPrefixLength="1" 
             CompletionInterval="1000"
             EnableCaching="true"
             CompletionSetCount="5"   
             ShowOnlyCurrentWordInCompletionListItem="true">
               </ajaxToolkit:AutoCompleteExtender> 
        </div>  
         </form>
         </body>

webservice1.asmx

   using System;
   using System.Collections.Generic;
   using System.Linq;
   using System.Web;
   using System.Web.Services;

   namespace WebApplication2
   {

   [WebService(Namespace = "http://tempuri.org/")]
   [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
   [System.ComponentModel.ToolboxItem(false)]



public class WebService1 : System.Web.Services.WebService
{

    [System.Web.Services.WebMethod]
    public string HelloWorld()
    {
        return "Hello World";
    }

    [System.Web.Services.WebMethod]
    [System.Web.Script.Services.ScriptMethod]
    public string[]Information(string prefixText)
    {


        RDFEntities db = new RDFEntities();
        var allrows = from s1 in db.RDFMatch_v where s1.RIC.StartsWith(prefixText) select s1.RIC;



        return allrows.ToArray();

    }
}

}

2 个答案:

答案 0 :(得分:0)

而不是asp.net ScriptManager,尝试使用ToolkitScriptManager,如下所示:

<ajaxToolkit:ToolkitScriptManager ID="sm1" runat="server" />

答案 1 :(得分:0)

从ASPX中删除行OnClientItemOut="Information"。您没有在JavaScript中定义信息处理程序。

然后将[ScriptService]属性添加到您的Web服务。

用于检查正在发生的事情的便捷工具是Fiddler。它将向您显示发送到您的服务器的请求和响应。