2008-12-11 8 views
1

J'ai un menu de liens de rapport dans ma page maître. Je dois ajouter un identifiant à la fin de chaque fois que l'utilisateur change une valeur sur la page enfant. Quel est un bon moyen d'accomplir cela? MISE À JOUR: J'aurais dû mentionner que la mise à jour de l'enfant se passe dans un UpdatePanel, ce qui signifie que la page maître n'est pas rechargée lorsque le changement survient.Mise à jour des liens sur le gabarit avec les données de la page enfant

Répondre

0

En réponse à votre UPDATE:

Le panneau mis à jour pourrait écrire l'ID dans un champ masqué et les événements de menu pourraient rechercher les champs masqués dans Request.Form["fieldName"].

Notez que vous ne devez pas fieldName.Text car ASP.NET ne fournit pas correctement la valeur correcte pour les champs qui ont été AJAXed.

2

Un MasterPage est vraiment un contrôle enfant de la page qu'il contrôle. Vous pouvez contrôler une MasterPage comme n'importe quel autre contrôle sur votre page (presque). Tout ce que vous devez faire est d'y faire référence.

vous ajoutez une propriété au code de votre MasterPage, de sorte que son code peut ressembler à ceci:

public partial class _default : System.Web.UI.MasterPage 
{ 
    protected string m_myString = string.Empty; 
    public string myString 
    { 
     get { return m_myString; } 
     set { m_myString = value; } 
    } 
    protected void Page_Load(object sender, EventArgs e) 
    { 

    } 
} 

Ensuite, vous devez jeter la propriété this.Master à votre MasterPage

public partial class index : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     // Cast here to get access to your MasterPage 
     _default x = (_default)this.Master; 
     x.myString = "foo"; 
    } 
} 
+0

Voir la mise à jour que je viens d'ajouter au problème d'origine. J'aurais normalement utilisé votre méthode, mais la mise à jour partielle de la page complique les choses. – gfrizzle

+0

Vous avez 2 choix que je peux voir. 1. Mettez à jour les ID en utilisant javascript côté client 2. Mettez à jour les ID comme indiqué ci-dessus et placez cette zone de la page MasterPage dans un deuxième panneau de mise à jour. – jrcs3

+0

Est-ce qu'un panneau de mise à jour dans la page maître sera actualisé si un enfant est actualisé? J'ai essayé un test rapide et ça n'a pas l'air de marcher, mais j'aurais pu me tromper. – gfrizzle

Questions connexes