J'ai une page Default.aspx et j'utilise un usercontrol. Sous certaines conditions dans usercontrol.cs, je dois invoquer une fonction présente dans la page Default.aspx.cs (page parent du contrôle utilisateur). S'il vous plaît aidez-moi et dites-moi le moyen de faire cette tâche.Appel de la page parent à partir du contrôle utilisateur
Répondre
Vous avez jeter la propriété Page
du type réel:
var def = this.Page as _Default;
if(def != null)
{
def.FunctionName();
}
la méthode doit être publique:
public partial class _Default : System.Web.UI.Page
{
public void FunctionName()
{
}
}
Mais notez que ce n'est pas le plus pratique puisque vous êtes Hard- reliant le UserControl
avec un Page
. Normalement, un objet d'un UserControl est la réutilisabilité. Pas plus ici. La meilleure façon de communiquer à partir d'une UserControl
avec sa page utilise un événement personnalisé qui peut être géré par la page.
Mastering Page-UserControl Communication - event driven communication
Essayez cette
MyAspxClassName aspxobj= new MyUserControlClassName();
aspxobj.YourMethod(param);
Vous plaisantez? Mis à part le fait qu'un 'UserControl' n'est pas un' Page', l'utilisation d'un constructeur pour créer une page (ou 'UserControl') ne fonctionnera pas si vous voulez accéder aux contrôles sur cette' Page' ou 'UserControl' depuis cette instance n'est pas créé à partir d'ASP.NET via le cycle de vie d'une page. –
Ajouter un événement au contrôle de l'utilisateur:
public event EventHandler SpecialCondition;
Raise cet événement dans votre contrôle utilisateur lorsque la condition est remplie:
private void RaiseSpecialCondition()
{
if (SpecialCondition != null) // If nobody subscribed to the event, it will be null.
SpecialCondition(this, EventArgs.Empty);
}
Ensuite, dans votre page contenant le contrôle de l'utilisateur, pour écouter l'événement:
public partial class _Default : System.Web.UI.Page
{
public void Page_OnLoad(object sender, EventArgs e)
{
this.UserControl1.OnSpecialCondition += HandleSpecialCondition;
}
public void HandleSpecialCondition(object sender, EventArgs e)
{
// Your handler here.
}
}
Vous pouvez changer le EventArgs
à quelque chose de plus utile pour transmettre des valeurs autour, si nécessaire.
parent.aspx.cs
public void DisplayMsg(string message)
{
if (message == "" || message == null) message = "Default Message";
Response.Write(message);
}
Pour appeler la fonction de la page parent de contrôle utilisateur utilise les éléments suivants: UserControl.ascx.cs
this.Page.GetType().InvokeMember("DisplayMsg", System.Reflection.BindingFlags.InvokeMethod, null, this.Page, new object[] { "My Message" });
Cela fonctionne bien pour moi ..
- 1. Appel d'une fonction de la page ASPX parent à partir du contrôle utilisateur Web
- 2. Appel d'une fonction d'un contrôle utilisateur Web à partir de la page parent
- 3. Accès à la fenêtre parent à partir du contrôle utilisateur
- 4. Obtenir le contrôle utilisateur parent du contrôle
- 5. L'appel d'une méthode à partir de la page parent après le chargement du contrôle utilisateur?
- 6. Appel d'une méthode d'un contrôle utilisateur à partir du formulaire parent
- 7. Contrôle utilisateur WPF parent
- 8. Impossible d'accéder à la page principale du contrôle utilisateur
- 9. Accès à un contrôle Web dans un contrôle utilisateur à partir du constructeur du contrôle utilisateur
- 10. Comment trouver l'URL de la page parent d'un contrôle utilisateur
- 11. Ajouter un script à la page du contrôle utilisateur .ASP.NET
- 12. Appel d'un événement dans une page à partir d'un contrôle utilisateur séparé
- 13. Accéder à la zone de texte sur la page à partir du contrôle utilisateur dans ASP.net
- 14. La définition de la page parente contrôle la visibilité à partir de la page de contrôle utilisateur enfant
- 15. ASP.NET: transmettre la valeur du contrôle utilisateur à la page?
- 16. Comment actualiser une page parent à partir d'un contrôle utilisateur personnalisé?
- 17. Traitement des événements déclaratifs à partir du contrôle utilisateur ASP.NET à la page
- 18. Accédez à l'interface utilisateur de la fenêtre parent à partir de la page enfant
- 19. Référence Contrôle principal à partir du contrôle utilisateur
- 20. accéder contrôle html dans la page du contrôle utilisateur Web
- 21. Contrôle de la page parent d'accès dans le contrôle utilisateur enfant
- 22. "Mettre en avant" à partir du contrôle utilisateur
- 23. Accéder à la propriété de la page parent dans le contrôle utilisateur
- 24. Ajouter les fichiers .js en bas de la page à partir du contrôle utilisateur
- 25. Appel d'AWS cli à partir du fichier de données utilisateur
- 26. Appel d'un contrôle html à partir du code php
- 27. Comment soumettre des données à partir du contrôle utilisateur Web
- 28. Appel de la méthode iframe enfant à partir de la page ASPX parent
- 29. Contrôle utilisateur - appel d'un événement de clic vb linkbutton (dans un contrôle utilisateur) à partir de javascript
- 30. Chargement dynamique du contrôle utilisateur à partir du côté serveur
[Cela vous aidera] (http://stackoverflow.com/questions/623136/calling-a-method-in-parent-page-from-user-control?rq=1) – Damith