AJAX AutocompleteExtender ne fonctionne pas. Service Web fonctionne
C'est le c# .net 2.0. Je suis l'aide d'une masterpage.
- Le WebService fonctionne très bien sur son propre.
- Je suis complètement perplexe. Quand je tape dans la zone de texte, rien ne se passe.
Fichiers:
EditTicket.aspx
La saisie semi-automatique.asmx
App_Code/Saisie Semi-Automatique.cs
EditTicket.aspx:
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc2" %>
<asp:ScriptManager id="ScriptManager1" runat="server" EnablepageMethods="true">
<Services>
<asp:ServiceReference Path="AutoComplete.asmx" />
</Services>
</asp:ScriptManager>
<cc2:AutoCompleteExtender
runat="server"
ID="AutoCompleteExtender1"
ServicePath="AutoComplete.asmx"
ServiceMethod="AutoComplete2"
MinimumPrefixLength="1"
CompletionSetCount="12"
TargetControlID="TextBox3"
EnableCaching="True" >
</cc2:AutoCompleteExtender>
<asp:TextBox ID="TextBox3" runat="server"></asp:TextBox>
De saisie semi-automatique.asmx:
<%@ WebService Language="C#" CodeBehind="~/App_Code/AutoComplete.cs" Class="AutoComplete" %>
De saisie semi-automatique.cs:
using System;
using System.Web;
using System.Collections;
using System.Web.Services;
using System.Web.Script.Services;
using System.Web.Services.Protocols;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Configuration;
using System.Data;
///<summary>
///Summary description for AutoComplete
///</summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[ScriptService]
public class AutoComplete : System.Web.Services.WebService {
public AutoComplete () {
//Uncomment the following line if using designed components
//InitializeComponent();
}
[WebMethod]
[ScriptMethod]
public string[] AutoComplete2(string prefixText,int count)
{
string conString = ConfigurationManager.ConnectionStrings["DB"].ConnectionString;
SqlConnection connection = new SqlConnection(conString);
connection.Open();
SqlParameter prm;
string sql = "Select program_name FROM CM_Programs WHERE program_name LIKE @prefixText";
SqlDataAdapter cmd = new SqlDataAdapter(sql, connection);
prm = new SqlParameter("@prefixText", SqlDbType.VarChar, 50);
prm.Value = prefixText+ "%";
cmd.SelectCommand.Parameters.Add(prm);
DataTable dt = new DataTable();
cmd.Fill(dt);
string[] items = new string[dt.Rows.Count];
int i = 0;
foreach (DataRow dr in dt.Rows)
{
items.SetValue(dr["program_name"].ToString(),i);
i++;
}
connection.Close();
return items;
}
}
Vous devez vous connecter pour publier un commentaire.
"Rien ne se passe" n'est pas une simple description d'aller sur. Quand vous dites que rien ne se passe, avez-vous vérifié que
service web?
retour des résultats?
correctement?
Si "rien", c'est qu'aucun des éléments ci-dessus qui se passe, je voudrais commencer à vérifier qu'il n'y a pas des erreurs javascript sur la page et que votre saisie semi-automatique extender est rendu correctement (examiner les contrôles de la page dans une trace).
Essayer de jongler avec le CompletionInterval de la propriété. J'ai utilisé ce contrôle dans le passé et n'était pas de voir le comportement que j'attendais jusqu'à ce que j'ai défini la CompletionInterval beaucoup plus basse valeur. La valeur par défaut est 1000 (ms), je voudrais lui donner un coup de feu avec une valeur de 1, juste pour voir si tout fonctionne comme il se doit (et womp de mesures devraient aider à réduire vers le bas où les problèmes de communication sont en passe) et si ça fonctionne, ne cessent d'augmenter la valeur jusqu'à ce que vous frappez une valeur qui a du sens (1 ms envoie beaucoup de demandes vers le serveur). Un rapport sur ce qui fonctionne et ce qui ne fonctionne pas.