2009-08-11 5 views
1

J'ai essayé d'utiliser l'extension de saisie semi-automatique à partir de la boîte à outils ASP.NET Ajax Control, mais j'ai eu beaucoup de mal à la faire fonctionner.ASP.Net: élément <name> n'est pas un élément connu

Pour installer le AjaxControlToolKit, je l'ai placé dans le binoyoy de mon application, puis j'ai simplement déplacé et déposé le contrôle dans le formulaire. Cependant, il ne cesse de dire,

« Element « AutoCompleteExtender » est pas un élément connu »

Donc au début, je pensais que je ne l'avais pas enregistré encore, mais quand je regarde l'en-tête, il était déjà là :

<%@ Register Assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral,PublicKeyToken=31bf3856ad364e35" Namespace="System.Web.UI" TagPrefix="asp" %> 

<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" tagprefix="ajaxToolkit"%> 

Donc, je ne suis pas sûr du tout, pourquoi il me donne toujours des problèmes.

D'autres fichiers de montage dans mon dossier bin comprennent:

System.Web.Extensions.ddl System.Web.Extensions.Design.dll

Voici mon code:

<asp:TextBox ID="txtOrganization" runat="server" Width ="500px" MaxLength ="250"></asp:TextBox> 
<asp:ScriptManager ID="ScriptManager1" runat="server"> 
    <Services> 
     <asp:ServiceReference Path="AutoComplete.asmx" /> 
    </Services> 
</asp:ScriptManager> 
<ajaxToolkit:AutoCompleteExtender runat="server" TargetControlID="txtOrganization" ServiceMethod="GetOrganizationList" ServicePath="AutoComplete.asmx"></ajaxToolkit:AutoCompleteExtender> 

Répondre

1

Je l'ai corrigé et j'ai réussi à le faire fonctionner. J'ai dû faire des changements à ma page aspx et à mon web.config.

ASPX: a ajouté en haut de ma page:

<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" tagprefix="ajaxToolkit"%> 

Mon contrôle ressemble maintenant à ceci:

 <asp:TextBox ID="txtOrganization" runat="server" Width ="500px" MaxLength ="250"></asp:TextBox> 
     <asp:ScriptManager ID="ScriptManager1" runat="server" > 
      <Services> 
       <asp:ServiceReference Path="AutoComplete.asmx" /> 
      </Services> 
     </asp:ScriptManager> 
     <ajaxToolkit:AutoCompleteExtender runat="server" ID="AutoComplete1" 
              TargetControlID="txtOrganization" 
              ServicePath="AutoComplete.asmx" ServiceMethod="GetOrganizationList" 
              MinimumPrefixLength="1" EnableCaching="true" 
              FirstRowSelected="true"> 
     </ajaxToolkit:AutoCompleteExtender> 

Quant à mon web.config, j'ajouté ce qui suit:

<configSections> 
    <sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"> 
     <sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"> 
      <section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication"/> 
      <sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"> 
       <section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="Everywhere"/> 
       <section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication"/> 
       <section name="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication"/> 
      </sectionGroup> 
     </sectionGroup> 
    </sectionGroup> 
</configSections> 

<system.web> 
    <pages> 
     <controls> 
      <add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> 
     </controls> 
    </pages> 
    <customErrors mode="Off"/> 
    <compilation debug="true" strict="false" explicit="true"> 
     <assemblies> 
      <add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> 
      <add assembly="System.Web.Extensions.Design, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
      <add assembly="System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/> 
      <add assembly="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/> 
     </assemblies>    
    </compilation> 
    <httpHandlers> 
     <remove verb="*" path="*.asmx"/> 
     <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> 
     <add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> 
     <add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="false"/> 
    </httpHandlers> 
    <httpModules> 
     <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> 
    </httpModules> 
    <sessionState mode="InProc" cookieless="false" timeout="240"/> 
    <!-- 
     The <authentication> section enables configuration 
     of the security authentication mode used by 
     ASP.NET to identify an incoming user. 
    --> 
    <authentication mode="Forms"/> 
    <!-- 
     The <customErrors> section enables configuration 
     of what to do if/when an unhandled error occurs 
     during the execution of a request. Specifically, 
     it enables developers to configure html error pages 
     to be displayed in place of a error stack trace. 

    <customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm"> 
     <error statusCode="403" redirect="NoAccess.htm" /> 
     <error statusCode="404" redirect="FileNotFound.htm" /> 
    </customErrors> 
    --> 
    <httpRuntime maxRequestLength="16000" useFullyQualifiedRedirectUrl="true" executionTimeout="180"/> 
</system.web> 
<system.web.extensions> 
    <scripting> 
     <webServices> 
      <!-- Uncomment this line to customize maxJsonLength and add a custom converter --> 
      <!-- 
    <jsonSerialization maxJsonLength="500"> 
    <converters> 
     <add name="ConvertMe" type="Acme.SubAcme.ConvertMeTypeConverter"/> 
    </converters> 
    </jsonSerialization> 
    --> 
      <!-- Uncomment this line to enable the authentication service. Include requireSSL="true" if appropriate. --> 
      <!-- 
    <authenticationService enabled="true" requireSSL = "true|false"/> 
    --> 
      <!-- Uncomment these lines to enable the profile service. To allow profile properties to be retrieved 
     and modified in ASP.NET AJAX applications, you need to add each property name to the readAccessProperties and 
     writeAccessProperties attributes. --> 
      <!-- 
    <profileService enabled="true" 
        readAccessProperties="propertyname1,propertyname2" 
        writeAccessProperties="propertyname1,propertyname2" /> 
    --> 
     </webServices> 
     <!-- 
    <scriptResourceHandler enableCompression="true" enableCaching="true" /> 
    --> 
    </scripting> 
</system.web.extensions> 
<system.webServer> 
    <validation validateIntegratedModeConfiguration="false"/> 
    <modules> 
     <add name="ScriptModule" preCondition="integratedMode" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> 
    </modules> 
    <handlers> 
     <remove name="WebServiceHandlerFactory-Integrated"/> 
     <add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> 
     <add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> 
     <add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> 
    </handlers> 
</system.webServer> 

À l'origine, depuis que j'utilise asp.net 2.0, les numéros de version de System.Web.Extensions étaient de 1,6 ... Donc j'ai dû tout changer en 3.5.0.0.

Aussi, lors de la recherche d'une solution, beaucoup de gens ont dit que je devais mettre une copie de System.Web.Extensions.dll et System.Web.Extensions.Design.dll dans le dossier bin.Je n'ai pas eu à le faire, j'ai simplement ajouté une référence à eux.

0

Est-ce vous ajoutez une référence pour le projet? Faites un clic droit sur le projet dans Visual Studio ... Hit Properties À côté des références, vous devriez voir le AjaxControlToolkit là ... Sinon, appuyez sur Ajouter ... à l'onglet Parcourir et sélectionnez-le.

Je suppose qu'aucun autre contrôle ne fonctionne?

+0

Une référence à AjaxControlToolKit a déjà été ajoutée, mais elle me donne toujours ce message d'erreur. Tous les contrôles fonctionnent, sauf pour la boîte à outils de contrôle ajax et extensions ajax – Anton

0

Avez-vous placé un ScriptManager en haut de la page? Vous devez le faire pour que les contrôles Toolkit fonctionnent correctement.

EDIT: Il existe de nombreuses causes possibles de ce problème; Vous n'avez pas correctement installé la boîte à outils AJAX, il existe des erreurs de compilation sur votre site, etc. L'un des problèmes les plus courants est que vous devez déclarer la boîte à outils dans votre fichier web.config. À l'intérieur de la balise pages, ajoutez ce qui suit:

<controls> 
<add tagPrefix="ajaxToolkit" namespace="AjaxControlToolkit" assembly="AjaxControlToolkit"/> 
</controls> 
+0

Malheureusement, quand je l'ajoute, il me donne la même erreur, mais pour le ScriptManager – Anton

+0

Après beaucoup de creuser, je pense que le problème est autre chose: Namespace ou type spécifié dans les importations au niveau du projet 'System.Web.Extensions.Design' ne contient aucun membre public ou ne peut pas être trouvé. Assurez-vous que l'espace de noms ou le type est défini et contient au moins un membre public. Assurez-vous que le nom de l'élément importé n'utilise aucun alias. – Anton

Questions connexes