J'essaie d'apprendre sur les contrôles des utilisateurs. J'ai créé un contrôle utilisateur comportant une zone de texte et un bouton. Ce que j'aimerais pouvoir faire est lorsque je clique sur le bouton de la commande de l'utilisateur, remplissez une étiquette dans la page ASPX. Je comprends que je pouvais simplement avoir un bouton sur la page qui utilise des propriétés sur le contrôle de l'utilisateur pour obtenir cette information .. Mais j'aimerais savoir comment le faire avec le bouton de contrôle de l'utilisateur. La raison de ceci est Le bouton n'est qu'un exemple .. un outil d'apprentissage. Si je peux obtenir ce travail, je voudrais probablement mettre la chose dans le contrôle de l'utilisateur qui pourrait nécessiter ce type d'informations de passage. De toute façon.
Quoi qu'il en soit, j'espère que quelqu'un peut prêter une main. P>
3 Réponses :
Le problème est que si vous rendez le USERCONTROL dépendant de sa page parent, il n'est plus portable et vous avez vaincu le but de le faire en UserControl en premier lieu. p>
C'est probablement la raison pour laquelle vous rencontrez des délégués et ce que vous utilisez dans tous les exemples - les gens tentent de supprimer la dépendance sur la page parlée en permettant à l'UserControl d'appeler une méthode passée, au lieu de définir directement l'étiquette dans le Page des parents. P>
Si cela est juste pour la pratique, vous feriez mieux d'appuyer sur un bouton sur la page mère pour définir une étiquette dans l'UserControl, plutôt que dans l'inverse. La façon dont vous le faites, n'est pas un bon design et devrait être évité pour de vraies applications. P>
Une chose que je pensais pour un contrôle de l'utilisateur. Vous avez une boîte multiples qui permet à une autosuggère qui serait utilisée à plusieurs endroits .. Le dernier élément que l'utilisateur sélectionne est la valeur que je souhaite. Son assez impliqué et ne voulait pas copier et coller autant de code ou encombrement. Alors, pensions qu'un contrôle de l'utilisateur fonctionnerait bien. La chose est, une fois que cette valeur est sélectionnée, j'espérais ne pas avoir à avoir l'utilisateur Cliquez sur un bouton pour récupérer la valeur de la page ... dans ce dont vous parlez .. Quelle approche prendriez-vous. Merci
Voir si Ce tutoriel peut aider. La meilleure façon de le faire est définitivement de métro un événement, ce qui n'est pas aussi difficile que vous le pensez. Les bases sont:
1. Définissez un événement dans votre classe de contrôle: p>
2. Soulevez l'événement dans une sous ou une fonction de votre classe de contrôle: p> 3. Gérer l'événement sur la page contenant votre commande: p> Evénement public MyEvent comme système.Eventhandler code> p>
Raiseevent MyEvent (moi, nouvel événement ()) code> p>
merci pour l'info .. me demandait ... Depuis que vous avez un moyen aussi simple et simple de le faire .. Comment réussissez-vous les informations dans l'événement. Ou est-ce que lorsque l'événement est tiré (votre «truck ici ) Je saisirais la valeur de la property qui est définie sur le contrôle de l'utilisateur
Si vous souhaitez transmettre des informations dans l'événement, vous devez modifier votre code "RaiseeEvent" pour réussir quelque chose d'autre que New Eventargs () Code>. Pour le garder simple, vous pouvez même passer une corde, comme ceci:
Raiseeevent MyEvent (moi, mystring) Code>, puis modifier le deuxième paramètre du
MyControl_Myevent CODE> SUB SUB sur votre page Pour être quelque chose comme
byval S comme chaîne code> au lieu de
byval e comme étant éventuellement code>. Vous pouvez passer ce que vous voulez dans l'événement. Je viens d'utiliser evenargs parce que c'est un moyen courant de le faire (la plupart des gens utilisent leur propre classe qui hérite de eventargs).
Vient de courir à travers cela. Si vous avez un UserControl sur une page, décidez d'ajouter des événements, vous souhaitez supprimer le USERCONTROL de la page d'accueil et l'ajouter. Au moins dans VB, la déclaration de contrôle semble ne pas être suffisamment intelligente pour ajouter les sans-heurts une fois qu'elle est déclarée. Bonne réponse.
Je crois ce que vous voudriez faire, c'est que votre UserControl soulever un événement. Cet article MSDN explique comment élever des événements et a des exemples VB. Ensuite, votre page peut abonner à l'événement que votre UserControl augmente et définit toutes les valeurs que vous devez définir. Il serait peut-être préférable d'exposer certains de vos champs d'UserControl (c'est-à-dire des boîtes de texte, etc.) en tant que propriétés publiques afin qu'elles soient accessibles à partir du contrôle souscrit. p>