Comment créer un contrôle personnalisé (pas un contrôle ASCX) et, plus important encore, l'utiliser dans votre projet? Je préfèrerais ne pas créer un projet séparé pour cela ou le compiler en tant que DLLContrôles personnalisés ASP.NET
Répondre
Les contrôles serveur doivent être compilés dans une DLL. Il ne devrait y avoir aucune raison d'avoir peur d'avoir un assemblage supplémentaire dans votre projet, et cela aide à créer une bonne organisation de projet. Les contrôles ASP.NET Server sont en fait des classes personnalisées dans un assembly. Ils n'ont pas de fichier de balisage "ascx" associé à eux.
Pour utiliser un contrôle serveur ASP.NET, vous devez indiquer à ASP.NET où rechercher sa classe.
Tout d'abord, créez un projet de bibliothèque de classes et ajoutez-le à votre solution, j'appellerai le mien "CustomControls.dll".
Une fois là-bas, ajouter une classe simple pour être votre webcontrol:
public class Hello : System.Web.UI.WebControl
{
public override Render(HtmlTextWriter writer)
{
writer.Write("Hello World");
base.Render(writer);
}
}
Construisez votre projet, et l'ajouter comme une référence à votre principal projet web.
Maintenant, dans la page ASPX que vous souhaitez utiliser ce contrôle, vous devez l'enregistrer, il faut donc ajouter ce que la première ligne du ASPX après la directive Page:
<%@ Register TagPrefix="Example" Namespace="CustomControls" Assembly = "CustomControls" %>
Maintenant, vous devriez avoir un contrôle nommé < Exemple: Bonjour > à votre disposition. Cela pourrait prendre une minute pour apparaître dans intellisense.
Créer la classe pour le contrôle et créer la solution. Si tout se passe bien, le contrôle devrait maintenant être disponible sur la boîte à outils.
Parfois, le VS ne met pas à jour la boîte à outils. Si cela se produit ajouter la directive Inscrivez-vous à la page:
<%@ Register Assembly="NAME_OF_THE_ASSEMBLY" Namespace="NAMESPACE_OF_THE_CUSTOM_CONTROL" TagPrefix="cc1" %>
puis il suffit d'utiliser le contrôle sur la page:
<cc1:mycustompanel id="MyCustomPanel1" runat="server"><asp:TextBox id="TextBox1" runat="server"></asp:TextBox></cc1:mycustompanel>
Si vous ne voulez pas un fichier * .ascx, vous ne voulez pas un projet séparé, et vous ne voulez pas un fichier * .dll, que pensez-vous qu'il reste? Le code doit vivre quelque part.
Vous avez mentionné que vous vouliez éviter de créer un projet distinct. Comme les autres réponses l'ont indiqué, il est beaucoup plus courant de simplement créer un nouveau projet pour stocker vos contrôles personnalisés et les référencer. Il est cependant possible d'enregistrer un contrôle défini dans le même projet, en utilisant la syntaxe régulière:
<%@ Register TagPrefix="Example" Namespace="CustomControls" Assembly="CustomControls" %>
Lorsque la « Assemblée » est l'assemblée où à la fois le contrôle et la page se trouve. Cela fonctionne beaucoup plus facilement si vous utilisez un projet d'application Web plutôt qu'un site Web.
- 1. Ninject, ASP.NET et contrôles personnalisés
- 2. contrôles personnalisés, la création dynamique
- 3. ASP.Net Contrôles personnalisés et contrôles utilisateur: Ces deux éléments sont-ils identiques
- 4. Éléments personnalisés dans ASP.NET avec des éléments enfants personnalisés
- 5. Comment créer des contrôles Web personnalisés Java?
- 6. Comment créer des contrôles personnalisés dans Silverlight?
- 7. asp.net mvc vues génériques/personnalisés
- 8. Objets d'aide personnalisés ASP.NET MVC
- 9. Silverlight contrôles personnalisés de l'utilisateur et la propriété Dépendance d'émission
- 10. Plusieurs contrôles personnalisés qui utilisent mouseMoved dans une fenêtre
- 11. Contrôles personnalisés dans la question d'événement souris Windows Forms C#
- 12. Comment passer args d'événements personnalisés à l'asp standard: les contrôles
- 13. Snaplines de base dans les contrôles Winforms personnalisés
- 14. Ajouter des contrôles personnalisés à movieplayer dans l'iPhone 3.0 SDK
- 15. Bonnes pratiques de création de contrôles personnalisés composites WPF
- 16. contrôles dynamiques dans asp.net
- 17. Contrôles accessibles pour ASP.NET
- 18. ASP.NET jQuery - Contrôles liés
- 19. Asp.net 3.5 Contrôles dynamiques
- 20. Contrôles ASP.NET MVC + Charthing
- 21. asp.net Contrôles dynamiques
- 22. Contrôles utilisateur ASP.NET MVC
- 23. Où dois-je stocker les données de configuration pour les contrôles personnalisés (contrôles utilisateur)?
- 24. ASP.NET Runtime organiser mes contrôles
- 25. Contrôles ASP.net: Compatibilité du navigateur
- 26. contrôles utilisateur et asp.net mvc
- 27. Contrôles Silverlight dans l'application ASP.NET
- 28. Existe-t-il un moyen de catégoriser mes contrôles personnalisés dans la boîte à outils?
- 29. Attribution d'un nom aux contrôles ASP.NET dans les contrôles utilisateur avec ASP.NET MVC
- 30. Styles personnalisés pour les widgets personnalisés dans Qt
Merci beaucoup! Non seulement cela a résolu mon problème mais m'a aussi aidé à mûrir plus en tant que développeur. –