2010-05-26 128 views
2

我希望有人可以幫助,我有一個真正的困難時間讓jQueryUI的自動完成與asp.net應用程序(而不是MVC)中的ajax一起工作。我可以讓它做出ajax調用,但我沒有正確處理響應。jQuery UI自動完成示例

對於初學者,我試圖讓自動完成對'GetSuggestions.aspx'進行ajax調用,它將返回一個硬編碼的字符串。我有它在哪裏將調用GetSuggestions.aspx,但我不能讓它返回任何東西到頁面。 (我的下一步將是'GetSuggestions.asxp'返回一個名稱/值對列表,但接下來我會解決這個問題)。

我使用的是從這裏的例子: http://jqueryui.com/demos/autocomplete/#remote 使用「源的異常: 「GetSuggestions.aspx」(而不是 「的search.php」)

回答

0

1.write在GetSuggestions的邏輯。 asmx(webservice)而不是GetSuggestions.aspx 2.在GetSuggestions.asmx中創建方法public static return_type functionname(arglist){} 3.在您的代碼中引用您的Web服務。

<script type="text/javascript"> 
$(function() { 
    function log(message) { 
     $("<div/>").text(message).prependTo("#log"); 
     $("#log").attr("scrollTop", 0); 
    } 

    $("#birds").autocomplete({ 
     source: "GetSuggestions.asmx", 
     minLength: 2, 
     select: function(event, ui) { 
      log(ui.item ? ("Selected: " + ui.item.value + " aka " + ui.item.id) : "Nothing selected, input was " + this.value); 
     } 
    }); 
}); 
</script> 

如果您的Web服務駐留在根目錄中。

否則你可以使用ajax控制工具包(如果你喜歡)。 謝謝。

+0

同意 - 不知道,如果你可以調用一個ASPX頁面,在這種情況下進行AJAX調用。 由於幾個原因,您需要一個ASMX Web服務,一個WCF Web服務或一個通用http處理程序(ASHX) – RPM1984 2010-05-27 00:16:16

+0

,我必須調用'GetSuggestions.aspx'(我有其他的ajax調用調用aspx頁面...我只是使用Response.Write()) – RUtt 2010-05-27 00:24:25

+0

我現在想我的問題是,我的asp.net頁面實際上並沒有返回「json」數據,我使用下面的代碼來返回我認爲的是JSON數據: JavaScriptSerializer js = new JavaScriptSerializer(); Country cty = new Country(); cty.Name =「加拿大」; cty.Abbr =「CA」; Response.Write(js.Serialize(cty)); 這會工作嗎? – RUtt 2010-05-27 01:42:28

0

一個常見的問題,從ASPX頁面返回的XML(不知道用JSON)是第一輸入(新行),如果你做的第一個字符不要將XML的第一行放在與頁面指令相同的位置。

錯誤方式:

<%@ Page Language="VB" ... %> 
<?xml version="1.0"?> 
<MOResponse> 
    <Id_Banco>MyBank</Id_Banco> 
    <Id_Status>1</Id_Status> 
    <Status>Success</Status> 
</MOResponse> 

正確方法:

<%@ Page Language="VB" ... %><?xml version="1.0"?> 
<MOResponse> 
    <Id_Banco>MyBank</Id_Banco> 
    <Id_Status>1</Id_Status> 
    <Status>Success</Status> 
</MOResponse>