2012-11-12 35 views
1

我想實現自動提示文本box.I已經檢查了其他職位似乎沒有任何要工作我,我無論是在Web應用程序試圖與website.Please在我的代碼計算outthe錯誤英寸當我在文本框中鍵入字母時,什麼都不會發生。我可以在瀏覽器中看到webservice結果。自動提示使用AJAX

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(); 

    } 
} 

}

+1

我很想知道爲什麼你沒有考慮jQuery自動完成。 – Shyju

+0

你能否給我提供鏈接,我會試試。 – Radha

+0

http://jqueryui.com/autocomplete/ – Shyju

回答

0

取而代之的是asp.net的ScriptManager的,儘量使用ToolkitScriptManager像這樣:

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

我試過這個@Wouter de Kort的變化。它不工作。 – Radha

0

從您的ASPX刪除線OnClientItemOut="Information"。您的JavaScript中沒有定義信息處理程序。

然後是[ScriptService]屬性添加到您的Web服務。

的檢查是怎麼回事一個方便的工具是Fiddler。它會顯示你的請求到你的服務器和響應。

+0

提琴手示出了作爲400結果之前i型字母本身。 – Radha

+0

你在做什麼400?在頁面本身? –

+0

沒有。在提琴手的反應。我嘗試jquery與genric處理程序。它工作正常。謝謝。 – Radha