2013-01-31 5 views
0

Je travaille sur un projet un outil pour suivre les vacances et il y a certaines parties de cette application (administration de rapport), le rôle "utilisateur" ne devrait pas voir. Jusqu'à présent, qui fonctionne sans problèmes, mais en quelque sorte la représentation des parties qu'un « utilisateur » ne devrait pas voir l'air terribles:Internet Explorer 8 problèmes avec la conception

enter image description here

L'autorisation qui devrait voir quelque chose sur la page est contrôlée dans le Web.sitemap

Si quelqu'un a eu le même problème et, pourriez-vous me donner quelques bons conseils ou une solution pour résoudre ce problème, je l'apprécierais vraiment!

Répondre

3

Le problème est que tout ce que vous cachez (côté client ou côté serveur) n'encapsule pas tous les contrôles associés. Ainsi, par exemple, si vous utilisez un menu ASP.NET, vous pouvez cacher un côté serveur option de menu avec le code suivant:

switch (UserRole) { 
    case "Administrator": 
     Menu1.Items.Item(0).Enabled = false; 
     break; 
} 

Ces contrôles assurez-vous de déplier tout le code HTML associé à cette option. Cependant, si vous utilisez vos propres contrôles ou si vous cachez des éléments côté client, vous devez vous assurer de masquer le conteneur entier (c'est-à-dire <div>) contenant le contrôle. Une bonne façon de le faire est avec jQuery:

$("#divVacationControl").hide(); 

Votre meilleur pari à déterminer qui contrôle dans IE8 ne sont pas cachés et en laissant ce regard indésirable est d'utiliser la barre d'outils développeur IE. Vous pouvez y accéder via le bouton F12 ou Outils - > Outils de développement Il peut également être téléchargé ici: http://www.microsoft.com/en-us/download/details.aspx?id=18359

utilisation Une fois ouverte la fonction « Select Element by Cliquez sur » pour inspecter les éléments non-cachés et inspecter la DOM. Vous pouvez alors trouver le coupable n'étant pas caché et vérifier votre logique.

La dernière méthode, si elle n'est utilisée que dans un certain navigateur, est de définir son mode de compatibilité. Ne pas dire que c'est le meilleur moyen mais c'est une option. Vous pouvez lire comment faire ceci dans un article de blog ci-dessous; Il suffit d'utiliser IE7 ou tout ce qui a fonctionné pour vous. Je ne recommanderais pas cette approche comme une solution à long terme à moins que ce soit une application intranet d'entreprise que vous avez un contrôle total sur l'environnement.

Specifying Document Compatibility Modes for ASP.NET Intranet Sites using IE8

+0

wow merci alote !! – Mingebag

Questions connexes