J'ai un .NET 2.0, application avec plusieurs types de Contrôles (cases à cocher, Boutons, etc.), que j'ai besoin de Activer ou de Désactiver selon le type de Licence que l'utilisateur a acheté . Je me demande s'il existe un moyen de le prendre en charge en tant qu'aspect, comme utiliser Injection ou un proxy qui peut intercepter l'appel à Enable ou d'autres propriétés du contrôle, et la logique désirée peut y être ajoutée. Si c'est important, j'utilise les contrôles Infragistics. Avez-vous d'autres idées à propos de ce problème? Autres approches/modèles? MerciActiver/Désactiver les contrôles selon le type de licence
Répondre
Vous pouvez créer un attribut personnalisé pour décorer les contrôles avec, puis faire une boucle récursive sur tous vos contrôles et vérifier que cet attribut permet de définir l'état souhaité.
En guise de suite à cette réponse, au lieu de décorer les contrôles (ce qui ne serait pas possible avec les contrôles intégrés ... Checkbox , Button, etc.), pourquoi ne pas créer un attribut personnalisé pour décorer la classe Page avec. Par exemple, un attribut quelque chose comme le suivant: '[RequiresLicense (LicenseType.Developer," btnButton1 "," cbCheckbox1 ")] public partielle classe MyPage: Page de base {' Dans votre classe 'BasePage' vous pourriez alors lire ces attributs personnalisés et masquer/désactiver les contrôles comme spécifié. – WayneC
Vous pouvez ajouter des attributs dans le fichier * .designer.cs, mais ils seront supprimés lorsque vous ajoutez ou modifiez les contrôles. Donc, votre solution est probablement meilleure dans la vraie vie :) –
n'est-il pas possible de le faire dans l'événement Form_Load()?
if(LicenseType.SomeCheckBoxDisabled) {
Form1.SomeCheckBox.Enabled = false;
}
Ajoutez un attribut supplémentaire à chaque contrôle que vous souhaitez protéger. Quelque chose comme ...
<asp:Button ID="Button1" runat="server" RequiredLicense="PremiumEdition">Click here</asp:Button>
Si je me souviens bien, ASP.NET vous permet d'ajouter des attributs non définis aux contrôles, qui seront disponibles dans la propriété Attributs du contrôle. Ensuite, dans l'initialisation de votre classe BasePage (PreRender, PageLoad, etc.), vous pouvez parcourir de manière récursive les contrôles de la page et rechercher les contrôles ayant l'attribut "RequiredLicense" et masquer ou désactiver si nécessaire.
Merci pour toutes les réponses. Je pense que ma question n'était pas claire puisque je n'étais pas sûr de ce que je cherchais. La réponse à ce que je cherchais: Mon application est écrite en utilisant le framework CAB. Afin d'activer/désactiver les contrôles dans l'application en fonction du paquet vendu, j'utiliserai le patron de commande tel qu'il est implémenté dans le SCFS. Merci
- 1. ENUM selon le type T
- 2. spécialisation de gabarit selon sizeof type
- 3. Comment faire disparaître les contrôles sur l'iPad/iPhone selon les directives de l'interface
- 4. charger la vue et les contrôles selon le mode affiché dans asp.net mvc 2
- 5. Page d'accueil à rendre selon le type d'utilisateur
- 6. Gérer les clés de licence
- 7. Contrôles de type Ajax pour les winforms .NET
- 8. Le contenu de la variable est différent selon le type de contenu
- 9. page charge selon les noms de classe
- 10. problème de licence rhino
- 11. Filtrage selon les données d'entrée problème
- 12. Consommant messages de file d'attente à la ressource de traitement variant selon le type de message
- 13. Supprimer les contrôles de la vidéo intégrée
- 14. Cryptographie .NET pour les clés de licence?
- 15. Deatails de serveur FTP selon le domaine
- 16. Licence mono-application MonoTouch?
- 17. Action différente selon le type de contenu renvoyé dans jquery ajax
- 18. Licence de polices sur le Web?
- 19. Renvoyer une liste différente selon le générique
- 20. automatiquement sélectionné une option selon le texte
- 21. Quelle licence de logiciel utiliser?
- 22. Supprimer le noeud de XML selon l'attribut
- 23. Comment appliquer une règle de validation différente selon le type d'association polymorphe (Rails)?
- 24. comment changer de vue selon la commande
- 25. Scripts de licence
- 26. Modèles de licence
- 27. Trialware/stratégies de licence
- 28. Comment concéder sous licence une licence de logiciel sous Licence Artistique 2
- 29. comment trier le répéteur selon le contenu?
- 30. Afficher les elipses où le texte sera tronqué selon iTunes
Bonjour, suggérez d'ajouter le tag 'Infragistics à vos tags. Vous ne voudriez sûrement pas afficher les contrôles que l'utilisateur ne peut pas utiliser ... en supposant que la licence d'un utilisateur donné est invariante ...? mmmm ... à la réflexion, peut-être que c'est une technique de marketing: rendre l'utilisateur affamé pour ce qu'ils ne peuvent pas utiliser :) bonne chance, – BillW
@Bill: "Sûrement vous ne voulez pas afficher les contrôles que l'utilisateur ne peut pas utiliser ". Je pense, il ferait exactement l'inverse: voir, mais pas utiliser, si aucune licence;) – serhio