2010-05-26 132 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>