2011-08-25 4 views
0

Je dois manquer quelque chose ici, mais j'essaie d'utiliser la saisie semi-automatique de jQuery UI avec une méthode de page ASP.NET. J'utilise JSON.NET pour sérialiser la réponse de la méthode qui fonctionne vraiment, et renvoie ceci:JQuery Autocomplete JSON avec JSON.NET

[{"ADMIN_ID":1,"ADMIN_NAME":"SMITH"}] 

... et voici mon code jquery:

$("#txtName").autocomplete({ 
    source: function (request, response) { 
     $.ajax({ 
      type: "POST", 
      url: "MyPage.aspx/GetPerson", 
      data: "{ 'q': '" + request.term + "', 'limit': '10' }", 
      contentType: "application/json", 
      dataFilter: function (data) { return data; }, 
      success: function (data) { 
       var result = $.parseJSON(data.d) 
       response($.map(result, function (item) { 
        return { 
         label: item.ADMIN_NAME, 
         value: item.ADMIN_ID 
        } 
       })) 
      }, 
      error: function (xhr, status, errorThrown) { 
       alert("Error: " + xhr.responseText); 
      } 
     }); 
    }, 
    minLength: 1 
}); 

Le problème est, la saisie semi-automatique ne montre jamais aucun élément. Des idées?

+0

Je suis un idiot, je ne l'ai pas parser le JSON quand il est revenu de ma méthode de page. Ajouté ce code ci-dessus: var résultat = $ .parseJSON (data.d) –

Répondre

0

Essayez cette première, je pense que votre code de réponse (...) est le coupable:

$('#txtName').result(function(event, data, formatted) { 
    $("#result").html(!data ? "No match!" : "Selected: " + formatted); 
}); 
+0

Désolé, ce #result était juste utilisé pour afficher la chaîne JSON de la méthode. J'ai sorti ça du code original. –