2010-05-26 6 views
2

J'espère que quelqu'un pourra vous aider, j'ai du mal à faire en sorte que l'autocomplétion de jQueryUI fonctionne avec ajax dans une application asp.net (pas MVC). Je peux l'obtenir pour faire l'appel ajax mais je ne fais pas quelque chose de bien gérer la réponse. Juste pour les débutants j'essaye d'avoir l'autocomplete faire un appel d'ajax à 'GetSuggestions.aspx' qui retournera une chaîne codée en dur. Je l'ai où il va faire l'appel à GetSuggestions.aspx mais je ne peux pas l'obtenir pour retourner quelque chose à la page. (Ma prochaine étape serait d'avoir 'GetSuggestions.asxp' retourner une liste de paires nom/valeur, mais je vais aborder cela ensuite).Exemples d'auto-complétion jQuery UI

J'utilise l'exemple d'ici: http://jqueryui.com/demos/autocomplete/#remote à l'exception de l'utilisation de « source: "GetSuggestions.aspx"(au lieu de "search.php")

Répondre

0

1.write les logiques de GetSuggestions. asmx (webservice) au lieu de GetSuggestions.aspx 2.Prenez votre méthode public static return_type functionname (arglist) {} dans GetSuggestions.asmx 3.Referrez votre service Web dans votre code.

<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> 

si votre service Web réside dans le répertoire racine. Sinon vous pouvez utiliser la boîte à outils de contrôle ajax (si vous le souhaitez)

Merci.

+0

D'accord - pas sûr si vous pouvez appeler une page ASPX pour effectuer un appel AJAX dans ce contexte . Vous aurez besoin d'un service Web ASMX, d'un service Web WCF ou d'un gestionnaire http générique (ASHX) – RPM1984

+0

pour deux raisons, je dois appeler 'GetSuggestions.aspx' (j'ai d'autres appels ajax appelant des pages aspx ... Je viens d'utiliser Response.Write()) – RUtt

+0

Je pense maintenant que mon problème est que ma page asp.net ne renvoie pas réellement les données "json", j'utilise le code suivant pour retourner ce que je pensais était données JSON: JavaScriptSerializer js = new JavaScriptSerializer(); Pays cty = nouveau Pays(); cty.Name = "Canada"; cty.Abbr = "CA"; Response.Write (js.Serialize (cty)); Cela fonctionnera-t-il? – RUtt

0

Un problème commun XML retour (pas sûr avec JSON) de la page Aspx est la première Entrez (NewLine) comme premier caractère si vous faites pas mettre la première ligne du XML dans la même que les directives page.

Mauvaise façon:

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

chemin droit:

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