BonjourWCF et plugin jQuery autocomplete
Je suis face à un problème, à essayer de comprendre comment utiliser cette autocomplete plugin et le faire consommer ma méthode de service WCF. Le WCF est correctement publié et fonctionne. Qu'est-ce qui peut être fait pour compléter automatiquement le plugin ou existe-t-il un autre moyen intelligent de faire un travail de saisie semi-automatique avec WCF et de choisir Person.Id et Person.Name?
Voici certaines choses que je travaille maintenant:
service WCF
public class Person {
public int Id {get;set;}
public string Name {get;set;}
public static List<Person> List(){
/*long query supressed to no be annoying :) */
}
}
[ServiceContract]
public interface IChatService
{
[OperationContract]
[WebInvoke(Method = "GET",
UriTemplate = "GetPeople",
BodyStyle = WebMessageBodyStyle.Bare,
ResponseFormat = WebMessageFormat.Json)]
List<Person> GetPeople();
}
public class MyService : IMyService
{
public List<Person> GetPeople()
{
return Person.List();
}
}
Maintenant, la page ASPX:
....
<head>
<script type="text/javascript" src="http://view.jquery.com/trunk/plugins/autocomplete/lib/jquery.js"></script>
<script type='text/javascript' src='http://view.jquery.com/trunk/plugins/autocomplete/lib/jquery.bgiframe.min.js'></script>
<script type='text/javascript' src='http://view.jquery.com/trunk/plugins/autocomplete/lib/jquery.ajaxQueue.js'></script>
<script type='text/javascript' src='http://view.jquery.com/trunk/plugins/autocomplete/lib/thickbox-compressed.js'></script>
<script type='text/javascript' src='http://view.jquery.com/trunk/plugins/jquery.autocomplete.js'></script>
<link rel="stylesheet" type="text/css" href="http://view.jquery.com/trunk/plugins/jquery.autocomplete.css" />
<link rel="stylesheet" type="text/css" href="http://view.jquery.com/trunk/plugins/lib/thickbox.css" />
<script>
$().ready(function() {
$('#<%=peopleNames.ClientID%>').autocomplete("http://localhost/MyService/MyService.svc/GetPeople", {
width: 260,
selectFirst: false
});
$("#<%=peopleNames.ClientID%>").result(function (event, data, formatted) {
alert('ok');
if (data) {
alert($(this).parent().next().find("input").val(data[1]));
}
});
});
</script>
</head>
<body>
<form runat="server">
<asp:TextBox ID="peopleNames" runat="server" MaxLength="500"></asp:TextBox>
</form>
</body>
</html>
Juste pour des fins de test, la L'idée est de laisser un nom d'utilisateur Web et jQuery appelle le service WCF http://localhost/MyService/GetPeople pour répertorier toutes les personnes dans la base de données SQL Server (dans la future méthode GetPeople aura un argument de chaîne). Le plugin jQuery compléte automatiquement semble être bon, mais je ne suis pas encore sûr des fichiers js dont j'ai besoin pour le faire fonctionner sur mon ordinateur local. Et maintenant je ne peux pas le faire fonctionner ou le déboguer, même quand il s'agit de montrer une alerte();
Qu'en est-il des attributs [DataConctract] [DataMember] dans la classe Person? – mmutilva
Terminé. Je vois que la WCF fonctionne bien. Je jette un coup d'oeil à http://jqueryui.com/demos/autocomplete/#remote pour voir ce qui se passe –