Ajax Control Toolkit de saisie semi-automatique extender
J'ai suivi ce guide (http://www.asp.net/ajaxlibrary/act_AutoComplete_simple.ashx) pour utiliser la saisie semi-automatique extender et il fonctionne cependant lorsque implimenting dans mon plus gros projet, je ne peux pas pour la vie de me voir la différence. Est-ce un problème d'avoir le répéteur imbriquées à l'intérieur des éléments du tableau?
de toute façon, j'ai l'auto complète extender l'appel d'une dumbby méthode du tutoriel juste pour obtenir commencé. Ne pas utiliser un webservice mais juste une méthode (comme dans le guide). La page utilise une page maître, est connue pour causer des problèmes? heres l'en-tête
<%@ Page Title="Report" Language="C#" MasterPageFile="~/Doctors/MasterPage.master" AutoEventWireup="true" CodeFile="generateReport.aspx.cs" Inherits="Doctors_generateReport"
maintainScrollPositionOnPostBack="true" %>
<style>...</style>
<asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" Runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" Runat="Server">
<asp:toolkitscriptmanager ID="ToolkitScriptManager1" runat="server" >
</asp:toolkitscriptmanager>
<p class="headingStyle"><strong><em>Clinical Report</em></strong></p>
<table>
et de la zone de texte:
<td class=logicalDivide>Current Medication:</td>
<td class=logicalDivide>
<asp:TextBox ID="tbCMed" runat="server" CssClass="textbox" Width="178px" MaxLength="30" Font-Names="Calibri" onfocus="{ this.value = ''; }"></asp:TextBox>
<asp:autocompleteextender
ID="AutoCompleteExtender1"
runat="server"
TargetControlID="tbCMed"
ServiceMethod="GetCompletionList4" UseContextKey="True">
</asp:autocompleteextender>
</td>
et le code-behind:
[WebMethod]
[ScriptMethod]
public static string[] GetCompletionList4(string prefixText, int count, string contextKey)
{
//Create array of movies
string[] movies = { "Star Wars", "Star Trek", "Superman", "Memento", "Shrek", "Shrek II" };
//Return matching movies
return movies.Where(m => m.StartsWith(prefixText, StringComparison.CurrentCultureIgnoreCase)
.Take(count)
.ToArray();
}
Edit 1:
Cette question est similaire (http://stackoverflow.com/questions/791361/trying-to-get-a-simple-example-of-asp-net-ajax-dropdownlist-autocomplete-extende?rq=1) mais, comme pour la démo, il travaille sur son propre, mais pas dans mon application.
Donc leur doivent être certains paramètres dans la Masterpage ou web.config qui modifient les trousses d'outils de comportement. Des idées ?
Edit 2:
J'ai juste essayé de mettre le ToolScriptManager dans la page principale - pas de dés ; et...
ajouté
EnabledPageMethods="true"
à la ToolScriptManager - toujours pas de dés.
Une dernière pertinente extrait à partir du web.config:
<pages>
<controls>
<add tagPrefix="asp" assembly="AjaxControlToolkit" namespace="AjaxControlToolkit"/>
</controls>
</pages>
<identity impersonate="true"/>
- Est
GetCompletionList4
absolument les mêmes que dans votre projet? Il est manqué parenthèse arouund Où la méthode de contenu.
Vous devez vous connecter pour publier un commentaire.
J'ai renoncé à l'Ajax Control Toolkit. Heres un jQuery solution (malformation, plus rapide que le kit d'outils de Contrôle ...avant qu'il arrêté de travailler!!):
... et le code-behind:
et de mettre ces derniers à l'intérieur de la scriptManager:
Ici ma solution, je suis en utilisant les services web pour appeler une fonction de saisie semi-automatique.
En supposant que vous avez AjaxControlToolKit correctement installé, procédez comme suit ce
Dans la page maître
1. Ajoutez la ligne suivante en haut de votre .page aspx
2. Ajoutez la ligne suivante après la forme id="form1" runat="server"
3. Ajouter votre zone de texte et la AutoCompleteExtender
4. Créer un webservice
L'Explorateur de solutions -> Clic Droit -> Ajouter un Nouvel Élément... -> Service Web (je remane à la saisie semi-automatique.asmx), puis appuyez sur le bouton Ajouter
Dans Les Services Web De Saisie Semi-Automatique.asmx
5. Ouvrez La Saisie Semi-Automatique.vb fichier et décommentez la ligne suivante
'<System.Web.Script.Services.ScriptService()> _
En VB cette ligne est un commentaire par défaut, et il est nécessaire pour permettre au Web Service pour être appelé à partir d'un script, à l'aide de ASP.NET AJAX
6. Ajouter votre asp:AutoCompleteExtender ServiceMethod appelé à la Fonction Publique, GetCompletionList
REMARQUE: prenez soin de
et
Actualiser votre page web et de le tester
Je l'espère, vous aider, vous et les autres.