Comment utiliser Ajax ScriptManager et ToolkitScriptManager dans la master page et les pages de contenu, respectivement, sans erreurs
J'ai un Script Ajax gestionnaire dans ma page principale depuis mes pages utiliser ajax. Mais dans une de mes pages de contenu, j'ai besoin d'utiliser AutoCompleteExtender dans AjaxControlToolkit qui nécessite l'utilisation de ToolScriptManager disponibles dans la boîte à outils. Mais cela conduit à un message d'erreur indiquant une Seule instance d'un ScriptManager peut être ajouté à la page. J'ai cherché sur internet pour trouver une solution. De nombreux programmeurs suggère l'utilisation de ScriptManagerProxy pour résoudre ce problème. Une autre alternative est d'utiliser ToolscriptManager dans la page principale, au lieu de ScriptManager. Quelqu'un peut merci de montrer comment résoudre ce problème en utilisant ScriptManagerProxy car je pense que c'est une meilleure façon de résoudre le problème?
Voici le code de ma page principale:
<form runat="server" id="bodyForm">
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:ContentPlaceHolder ID="ContentPlaceHolderBodyMain" runat="server">
</asp:ContentPlaceHolder>
</form>
Et voici le code de ma page de contenu:
<asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server">
</asp:ToolkitScriptManager>
<asp:TextBox ID="TextBoxStudentID" runat="server" autocomplete="off"></asp:TextBox>
<asp:AutoCompleteExtender ID="AutoCompleteExtenderStudentID" runat="server"
EnableCaching="true" BehaviorID="AutoCompleteEx" MinimumPrefixLength="2"
TargetControlID="TextBoxStudentID" ServicePath="~/CampusMateWebService.asmx" ServiceMethod="GetCompletionListForStudentID"
CompletionInterval="50" CompletionSetCount="30"
CompletionListCssClass="autocomplete_completionListElement" CompletionListItemCssClass="autocomplete_listItem"
CompletionListHighlightedItemCssClass="autocomplete_highlightedListItem"
DelimiterCharacters=";, :" ShowOnlyCurrentWordInCompletionListItem="true">
<Animations>
<OnShow>
<Sequence>
<%-- Make the completion list transparent and then show it --%>
<OpacityAction Opacity="0" />
<HideAction Visible="true" />
<%--Cache the original size of the completion list the first time
the animation is played and then set it to zero --%>
<ScriptAction Script="//Cache the size and setup the initial size
var behavior = $find('AutoCompleteEx');
if (!behavior._height) {
var target = behavior.get_completionList();
behavior._height = target.offsetHeight - 2;
target.style.height = '0px';
}" />
<%-- Expand from 0px to the appropriate size while fading in --%>
<Parallel Duration=".2">
<FadeIn />
<Length PropertyKey="height" StartValue="0"
EndValueScript="$find('AutoCompleteEx')._height" />
</Parallel>
</Sequence>
</OnShow>
<OnHide>
<%-- Collapse down to 0px and fade out --%>
<Parallel Duration=".2">
<FadeOut />
<Length PropertyKey="height" StartValueScript=
"$find('AutoCompleteEx')._height" EndValue="0" />
</Parallel>
</OnHide>
</Animations>
</asp:AutoCompleteExtender>
OriginalL'auteur Deepak Joy Jose | 2012-09-04
Vous devez vous connecter pour publier un commentaire.
Je suis tombé sur un problème similaire pendant la mise à jour depuis une ancienne version de AjaxControlToolkit (et à la valorisation de .NET 2.0 à 3.5).
Je ne vois pas pourquoi ce serait la meilleure façon. Vous devez placer un ScriptManager sur chaque page enfant. Quel est le problème avec seulement de remplacer le ScriptManager avec ToolkitScriptManager sur la page principale et être fait avec elle?
Ce qui a été trouvée sur http://www.asp.net/ajaxlibrary/act_faq.ashx:
OriginalL'auteur ZFox
ScriptManagerProxy permet au contenu de la page pour passer des références à la ScriptManager placé dans la page maître.
tutoriel vidéo
ScriptManagerProxy commande permet à un utilisateur d'ajouter des scripts et des services qui sont spécifiques aux composants imbriqués. Si une page contient déjà le contrôle ScriptManager. Une seule instance de contrôle ScriptManager peuvent être ajoutés à une page. La page peut inclure le contrôle, directement ou indirectement, imbriquée à l'intérieur d'un composant, tel qu'un contrôle de l'utilisateur ou imbriquée de la page maître. Le ScriptManagerProxy de contrôle est utilisé lorsque le contrôle ScriptManager est déjà dans la page et imbriquée ou composant parent nécessite l'ajout de fonctionnalités de contrôle ScriptManager.
Comment utiliser AJAX paquet ScriptManagerProxy de contrôle dans ASP.NET
Rana,@Adittya: je sais que je devrais utiliser ScriptManagerProxy. Le problème est que je ne sais pas pour remplacer ScriptManager dans la MasterPage avec ToolkitScriptManager dans le Contenu de la page. Est-il possible de le faire?
OriginalL'auteur Pranay Rana
U viens de rajouter :
<asp:ScriptManager ID="ScriptManager1" runat="server" />
dans le corps asp ou ContentPlaceHolderOriginalL'auteur Ngô Đức Tuấn