Nous essayons de mettre à niveau notre site de la version 3.5 vers la version 4.0. Tout semble être bon côté serveur - Mon seul problème à ce jour est l'ID d'une poignée de contrôles personnalisés.ID client ASP.Net 3.5 différent de 4.0
La décélération des contrôles ressemble:
<div runat="server" id="gglSelectedItemsImage" class="gplSelectedItemsText">None selected</div>
Lors du rendu en 3.5 le contrôle ressemble à:
<div id="gplCategories_gglSelectedItemsImage" class="gplSelectedItemsText">Some Content</div>
Et 4.0 comme:
<div id="ctl00_ctl00_ctl00_ContentPlaceHolder1_Content_gplCategories_gglSelectedItemsImage" class="gplSelectedItemsText">Some Content</div>
Cela provoque quelques-uns des notre JavaScript/JQuery plus ancien à l'échec.
J'ai défini <pages clientIDMode="AutoID" controlRenderingCompatibilityVersion="3.5" />
dans le fichier web.config afin que 99,9% des ID soient corrects. La chose la plus étrange est le contrôle 3.5 ressemble à rendre avec clientIDMode="Predictable"
plutôt que les ID automatiques 3.5 standard?
En outre, si j'accéder à la version 4.0 du contrôle clientID côté serveur, il semble correct:
Me.gglSelectedItemsImage.ClientID = "gplCategories_gglSelectedItemsImage"
C'est le principal problème, toutes les valeurs insérées dans le code JavaScript ect sont en fait les mauvaises valeurs.
Notre site est malheureusement trop volumineux pour réparer cette erreur. J'ai donc besoin de comprendre pourquoi le contrôle affiche son ID différemment et l'implémente sur le site.
Toutes les idées que vous avez seront très appréciées.
Pourquoi votre JavaScript ancien/jQuery comptent sur ids clients hardcoded de toute façon? – LukeH
Je suis d'accord avec LukeH. La propriété ClientID existe donc vous ne les fabriquez pas vous-même, quelle que soit la version du framework. –
C'était avant mon temps, donc je ne sais pas. Dans ce cas, nous avons un contrôle générique qui exclut un clientID d'un autre contrôle ("gglSelectedItemsImage") puis utilise Jquery pour mettre à jour sa valeur. Le problème est provoqué par le serveur pensant que le clientID est "gplCategories_gglSelectedItemsImage" quand les documents rendus réels sont "ctl00_ctl00_ctl00_ContentPlaceHolder1_Content_gplCategories_gglSelectedItemsImage" class = "gplSelectedItemsText" – pingoo