2009-12-23 8 views
1

Comment désactiver un si l'utilisateur n'est pas connecté? Ne fonctionne pas, même si j'indique Page.DataBind() dans la méthode PageLoad. Donne l'erreur: Message d'erreur de l'analyseur: Les blocs de code ne sont pas pris en charge dans ce contexte.Comment désactiver un MenuItem si un utilisateur n'est pas connecté?

J'ai essayé d'ajouter un attribut ID, et il donne une erreur indiquant qu'il ne s'agit pas d'un attribut pris en charge.

Des idées?

Répondre

2

Tout en essayant de faire comme webforms WinForms, Microsoft a tourné court et n'a pas fidèlement représenté beaucoup de propriétés dans le WinForms objet MenuItem, en particulier la propriété Visible. Ils ont également scellé la classe interdisant la possibilité de contourner cet oubli par le polymorphisme.

Il serait génial de pouvoir faire quelque chose comme ceci:

<asp:MenuItem NavigateUrl="~/Customizations.aspx" Text="Customizations" Visible="<%# HttpContext.User.Identity.IsAuthenticated %>/> 

Vous malheureusement allez probablement avoir recours à la construction ou la modification de votre liste dans le code-behind.

+0

Merci, j'ai eu recours à modifier ma liste dans le code-behind :( – esac

0

Je dirais par défaut ceux qui peuvent être en question pour les utilisateurs en définissant Visible = "false" et pour ceux qui devraient être visibles, définissez Visible = true dans le code ... il n'y a pas de bon support en ligne pour cela dans les formulaires Web.

HTH

+0

Comment définiriez-vous Visible = true dans le code? Puisque vous ne pouvez pas assigner un ID à l'élément, il semble qu'il n'y ait aucun moyen de le modifier. – esac

+0

En outre, il n'y a pas de propriété Visible. – esac

+0

Bonjour, OK, oui, mes excuses ... Je pensais qu'il y avait mais oui cela le vérifie: http://msdn.microsoft.com/fr-fr/library/system.web.ui.webcontrols.menuitem_properties% 28VS.80% 29.aspx Cela semble donc un peu plus restrictif que je ne le pensais. Vous pouvez utiliser Menu.FindItem pour rechercher des éléments via le chemin de valeur (chaque élément de menu a une valeur et cette valeur peut être utilisée comme chemin). http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.menu.finditem%28VS.80%29.aspx Ensuite, vous pouvez ajouter des éléments de manière dynamique ou ajouter les à la liste et supprimer dynamiquement. –

Questions connexes