2011-01-28 29 views
1

我無法使AutoCompleteExtender正常工作。這可能是微不足道的。在VS2010中使用.NET 4默認ASP.NET項目。AjaxControlToolkit - 無法使AutoCompleteExtender正常工作

代碼:

<asp:TextBox runat="server" ID="example" autocomplete="off" /> 
<ajaxToolkit:AutoCompleteExtender 
      ID="autocomplete" 
      runat="server" 
      TargetControlID="example" 
      ServicePath="~/services/AutoComplete.asmx" 
      ServiceMethod="GetCompletionList" 
      CompletionInterval="1" /> 

Web服務的工作 - 將代碼從AJAX控件工具包的樣品幾乎逐字複製。這真讓我很沮喪。我在這裏看過其他問題,但還沒有找到解決方案。

我沒有收到任何錯誤或異常。在文本框中鍵入不會執行任何操作,Web服務不會觸及到中斷點。

+0

你得到任何錯誤?這是什麼行爲? – 2011-01-28 13:27:11

+0

我沒有收到任何錯誤或例外。在文本框中鍵入不會執行任何操作,Web服務不會觸及到中斷點。 – Sam 2011-01-28 13:30:08

+0

在服務中放置一個斷點,看看它是否觸發。確保你沒有任何權限問題。另外請確保您的服務使用[System.Web.Script.Services.ScriptService]屬性進行裝飾以通過JSON進行通信。 – e36M3 2011-01-28 13:37:24

回答

1

請確保您有正確的輸入參數的名稱的外殼:

[System.Web.Services.WebMethod] 
[System.Web.Script.Services.ScriptMethod] 
public string[] GetCompletionList(string prefixText, int count) 

確保您使用prefixText計數用正確的大小寫。

0

嘗試從服務路徑中刪除〜/。

ServicePath="services/AutoComplete.asmx" 
1

在我重新使用基於AutoCompleteExtender的UserControls的新網站上,這種情況不止一次發生在我身上。我建議您使用Fiddler從瀏覽器中捕獲和檢查POST以及服務器的響應。安裝和啓動是一件輕而易舉的事情。運行後,您可以在TextBox中鍵入幾個字符,然後檢查Fiddler捕獲的Web會話條目。如果您看到一個或多個帶有錯誤代碼的條目,請檢查它們是否由您的IIS(或ASP.Net)服務器生成的錯誤詳細信息。你通常會很快到達底部。

最近,我的問題是,我忘了取消對WebService類的ScriptService屬性:

// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. 
[System.Web.Script.Services.ScriptService]