Comment accéder à l'élément .Net sur la page maître à partir d'une page de contenu ?

Est-il possible d'accéder à un élément d'une page maître depuis la page chargée dans le ContentPlaceHolder pour le maître ?

J'ai un ListView qui répertorie les noms des personnes dans une zone de navigation sur la page maître. Je voudrais mettre à jour le ListView après qu'une personne a été ajoutée à la table à laquelle le ListView est lié aux données. Le ListView ne met actuellement pas à jour ses valeurs tant que le cache n'est pas rechargé. Nous avons constaté que le simple fait de réexécuter le ListView.DataBind() mettra à jour le contenu d'une liste. Nous n'avons pas pu exécuter le ListView.DataBind() sur une page qui utilise la page maître.

Ci-dessous est un exemple de ce que je voulais faire mais une erreur du compilateur dit

'PeopleListView n'existe pas dans le contexte actuel'

GIS.master - Où réside ListView

...<asp:ListView ID='PeopleListView'...

GISInput_People.aspx - Utilise GIS.master comme page maître

GISInput_People.aspx.cs

AddNewPerson()
{
    // Add person to table
    ....

    // Update Person List
    PeopleListView.DataBind();
    ...
}

Quel serait le meilleur moyen de résoudre un problème comme celui-ci en C ?

请先 登录 后评论

2 réponses

Brandon Wood

En supposant que votre page maître s'appelle MyMaster :

(Master as MyMaster).PeopleListView.DataBind();

Modifier : étant donné que PeopleListView sera déclaré protégé par défaut, vous devrez soit le changer en public, soit créer un wrapper de propriété publique afin que vous puissiez y accéder depuis votre page.

请先 登录 后评论
palmsey

Je crois que vous pourriez le faire en utilisant this.Master.FindControl ou quelque chose de similaire, mais vous ne devriez probablement pas - cela nécessite que la page de contenu en sache trop sur la structure de la page maître .

Je suggérerais une autre méthode, telle que le déclenchement d'un événement dans la zone de contenu que le maître pourrait écouter et re-lier lorsqu'il est déclenché.

请先 登录 后评论
  • 11 abonnés
  • 0 favoris,505 Feuilleter
  • Eddie posée à 2023-03-27 16:54