2009-09-21 7 views
0

J'ai donc un contrôle utilisateur personnalisé. J'ai un événement (SelectionChanged) et je suis désireux d'avoir qui utilise toujours mon contrôle pour faire ce qui suit pour brancher l'événement:Contrôle utilisateur ASP.Net - VS Event Wireup

  1. glisser le contrôle à la page
  2. en mode concepteur, cliquez sur le contrôle
  3. vue, les gestionnaires d'événements de contrôle (à partir de la fenêtre des propriétés)
  4. trouver l'événement SelectionChanged
  5. double-cliquez et laissez visual studio créer le code derrière la fonction et le fil sur la page ASPX.

Comment puis-je faire cela? J'ai la configuration de contrôle pour que l'utilisateur puisse taper manuellement le fil de l'événement et le code derrière l'événement, mais je veux que Visual Studio le fasse.

Actuellement, quand un développeur a laissé tomber mon contrôle sur la page, ils peuvent cliquer dessus et voir les propriétés mais aucun événement n'est disponible (l'éclair n'est même pas là).


Mes événements sont publics. Les voici:

public delegate void SelectionChangedDelegate(object sender, SelectionChangedEventArgs e); 
public event SelectionChangedDelegate SelectionChangedEvent; 
+0

Avez-vous défini vos événements public? – shahkalpesh

+0

Voir si ce lien aide - http://msdn.microsoft.com/en-us/library/t4z863dh%28VS.71%29.aspx – shahkalpesh

+0

Shahkalpesh, je ne sais pas comment le lien aide. Je suis capable de créer mon contrôle sans aucun problème de codage, mais j'aimerais V.S. pour créer les wire-ups de gestionnaire d'événement pour moi. Je ne veux pas qu'un autre développeur doive taper "protected void UC_SitesBar_SelectionChanged (expéditeur d'objet, SelectionChangedEventArgs e) {}". cela me semble être un énorme problème chaque fois que vous voulez vous abonner à mon événement. – Miles

Répondre

2

Je ne comprends pas comment l'éclair n'est pas là. Votre contrôle hérite-t-il de System.Web.UI.HtmlControls.HtmlControl ou System.Web.UI.Control ou d'un autre contrôle dérivé?

Si vous héritez de l'un de ces contrôles, vous devriez voir les événements hérités dans la fenêtre des propriétés.

Le fait que l'éclair ne soit pas là m'amène à croire que vous n'héritez pas d'une des classes de contrôle.

EDIT: Eh bien, vous n'allez pas aimer ça. UserControl ne se comporte pas comme un WebControl. Et en tant que tel, l'éditeur VS ne pas wireup les événements.

Si l'événement Wireup est critique pour vous (Si cela va être une bibliothèque vendue), je vous recommande de réécrire le contrôle en tant que WebControl. Cela vous obligera à ajouter tous les contrôles par programme dans la méthode de remplacement CreateChildControls.

Vous pouvez également inclure votre UserControl dans un WebControl et lancer tous les événements de cette manière.

Bonne chance!

+0

Voici la déclaration de ma classe: public partial class UC_SiteBar: System.Web.UI.UserControl – Miles

Questions connexes