Bonjour à tous
Depuis quelques jours, je cherche sur le net une façon de faire un TextBox qui offre des suggestions à partir d'une base de données. J'avais bien réussi avec un projet suivant .NET Framework 3.5... Cependant, le serveur où sera déployé le site ne supporte que .NET Framework 2.0... Du coup j'ai du convertir mon projet à 2.0 ce qui engendra quelques problèmes avec Ajax
J'ai installé séparément Ajax 1.0 comme le suggère le site www.asp.net/ajax/ mais depuis mon controle AutoCompleteExtender ne fonctionne plus!! J'ai exécuté mon WebService avec succès, par conséquent, il semble qu'il n'est pas lié avec l'AutoComplete... Voici mon code :
*** J'ai ajouté le "httpHandlers" pour réglé l'erreur "Sys is undefined" dans le Web.config et les références vers System.Web.Extensions et System.Web.Extensions.Design à mon projet suite à l'installation d'Ajax pour .NET 2.0 ***
Web.config
ChecklistsPortal.Master
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 <?xml version="1.0"?> <configuration> <appSettings/> <connectionStrings/> <system.web> <httpHandlers> <add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="false"/> </httpHandlers> <compilation debug="true"> <assemblies> <add assembly="System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/> <add assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> <add assembly="System.Web.Extensions.Design, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> <add assembly="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/></assemblies></compilation> <authentication mode="Windows"/> </system.web> </configuration>
Default.aspx
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 ... <body> <form id="form1" runat="server"> <asp:ScriptManager ID="ScriptManager1" runat="server"> </asp:ScriptManager> ... </body>
MyAutocompleteService.asmx
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 <%@ Page Title="" Language="C#" MasterPageFile="~/ChecklistsPortal.Master" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="ChecklistsPortal.Default" %> <%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc1" %> <asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server"> </asp:Content> <asp:Content ID="Content2" ContentPlaceHolderID="body" runat="server"> <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> <cc1:AutoCompleteExtender ID="AutoCompleteExtender1" runat="server" ServicePath="MyAutocompleteService.asmx" ServiceMethod="GetSuggestions" TargetControlID="TextBox1" MinimumPrefixLength="1" CompletionSetCount="12"> </cc1:AutoCompleteExtender> </asp:Content>
J'espère que vous saurez m'aider parce que j'ai perdu plusieurs heures à essayer de régler le problème... Il ne se passe rien lorsque j'écris quelque chose dans le TextBox.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 using System; using System.Collections; using System.ComponentModel; using System.Data; using System.Web; using System.Web.Services; using System.Web.Services.Protocols; using System.Web.Script.Services; using System.Collections.Generic; namespace ChecklistsPortal { /// <summary> /// Summary description for MyAutocompleteService /// </summary> [WebService(Namespace = "http://tempuri.org/")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] [ToolboxItem(false)] [ScriptService] public class MyAutocompleteService : WebService { [WebMethod] public string[] GetSuggestions(string prefixText, int count) { List<string> responses = new List<string>(); for (int i = 0; i < count; i++) responses.Add(prefixText + (char)(i + 65)); return responses.ToArray(); } } }
Merci d'avance!
Partager