Appel UserControl méthode à partir de la page parent
J'ai eu une approche de ce type à l'appel d'un Parent de la Page méthode de son Contrôle de l'Utilisateur.Cette "DisplayMessage" fonction accepte simplement une variable de chaîne de message et l'affiche sur l'écran.
Dans le contrôle de l'utilisateur, j'ai placé une zone de texte et un bouton. Sur l'événement click du Bouton, je suis l'appel de la Page Parent méthode que nous avons discuté ci-dessus en utilisant la Réflexion et le dépassement de la valeur de la zone de texte pour la méthode et la méthode est invoquée et le message est affiché sur l'écran.
De La Page Parent:
public void DisplayMessage(string message)
{
Response.Write(message);
}
De Contrôle De L'Utilisateur:
protected void btnSend_Click(object sender, EventArgs e)
{
this.Page.GetType().InvokeMember("DisplayMessage",System.Reflection.BindingFlags.InvokeMethod, null, this.Page, new object[] { txtMessage.Text });
}
Il fonctionne très bien pour moi.
Maintenant ce que je besoin est, je dois l'appeler une méthode qui existe dans UserControl à partir de la page parent.
Veuillez me suggérer. Merci à l'Avance.
OriginalL'auteur karthik k | 2011-06-16
Vous devez vous connecter pour publier un commentaire.
Ce que vous définissez la
ID=""
attribut lorsque vous placez la commande sur la page est le nom de la variable que vous pouvez utiliser pour faire référence à partir de l'intérieur de la page.Donc, si votre page ressemble à ceci:
Alors vous pouvez simplement faire:
La méthode invoquée, à l'utilisateur le contrôle de la société mère doit être public. Si c'est privé ou protégé, la méthode ne peut être appelée à partir de la mère.
Aussi, au lieu d'invoquer la page des fonctions via la réflexion, vous pourriez être mieux à l'aide d'événements.
OriginalL'auteur mdm
.La Page va vous donner une référence à l'objet page.
Si vous mettez en œuvre la DisplayMessage dans une page de base, puis héritent de cette.
vous pourriez lancer cette.Page BasePage, puis d'appeler la méthode de cette façon 🙂
OriginalL'auteur Stuart.Sklinar
Je suppose que j'ai trouvé le plus plus facile façon de le faire
Juste passer la référence de la société mère dans le constructeur de la de contrôle de l'utilisateur.
Et Dans le constructeur de contrôle à l'utilisateur de sauver la référence du formulaire parent dans la variable locale
Maintenant l'accès de tout, de la classe parent par le biais de cette variable locale '_form1'
Exemple
les parents de variables/méthodes de l'enfant ou de l'envoyer de l'enfant variables d'un parent.
J'espère que ça aidera quelqu'un 🙂
OriginalL'auteur Nabeel Zafar