2009-11-15 3 views
4

J'évalue la conversion d'un ancien site Web asp.net basé sur des cadres pour utiliser des pages maîtres. La seule chose qui me retient, c'est l'énorme travail qu'il faudra faire pour mettre à jour chaque page afin de gérer les noms. La plupart de mes problèmes sont avec javascript referencing codés en dur.Besoin de solution de contournement pour le nom de page maître .Net Mangling

Existe-t-il un moyen pour moi de dire à ASP.Net que pour un domaine de contenu particulier que je ne veux pas que le mangling se produise. Laissez-moi gérer les conflits de noms.

Remarque

Je suis au courant .Net 4.0 a une solution pour cela comme detailed here. Je veux une solution qui n'implique pas d'attente, doit être .Net 3.5.

Mise à jour

Toutes les suggestions pour des alternatives opensource à MasterPages qui me obtenir par jusqu'à ce que .Net 4.0? Ou que diriez-vous d'une solution de travail de piratage pour contourner le mangling. Merci

+1

Dupe: http://stackoverflow.com/questions/844567/any-way-to-prevent -master-pages-from-changing-element-ids –

Répondre

3

La seule façon "prise en charge" pour cela est de ne PAS utiliser les éléments définis comme "runat =" server "". Sinon, .NET 4.0 est la première fois que vous recevez un mécanisme cohérent et pris en charge pour effectuer cette modification.

Vous pourriez peut-être contourner cela par d'autres moyens, mais rien de ce qui va être facile/rapide à implémenter.

0

Une façon de faire est avec un code JavaScript généré par le serveur qui associe l'ID généré avec un nom plus convivial. Vous pouvez accéder à l'ID généré en utilisant la propriété ClientID. Par exemple:

<asp:Label runat="server" ID="myInfo" Text="Initial text" />  
<script type="text/javascript"> 
    function RegObj(clientId, anId) { 
    eval('window.' + clientId + ' = document.getElementById(anId)'); 
    } 
    RegObj('mytext', '<%= myInfo.ClientID %>'); 
    mytext.innerHTML = 'my text'; 
</script> 

Cette ID rapporté comprend tout mangling fait par Master Pages, contrôles imbriqués, etc.