Article complet: [ASP.NET][C#] Lorsque j'utilise une MasterPage, mon contôle placé dans un ContentPlaceHolder vaut null dans l'événement OnPreInit

19/12/2008

Permalink 21:00:00, Catégories: C#, ASP.Net, FAQ, Récapitulatif .NET, Récapitulatif, 295 mots   French (FR) , nico-pyright(c)

[.NET] [ASP.NET][C#] Lorsque j'utilise une MasterPage, mon contôle placé dans un ContentPlaceHolder vaut null dans l'événement OnPreInit

En voilà un titre long :)

Il faut dire qu'il s'agit d'un problème qui arrive dans le cas suivant :

On dispose d'une masterpage, ex (un peu épuré) :

<%@ Master Language="C#" AutoEventWireup="false" CodeBehind="Site1.master.cs" Inherits="testMasterPage.Site1" %> 
 
<html><head runat="server"><title></title></head> 
<body> 
  <form id="form1" runat="server"> 
  <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server"> 
  </asp:ContentPlaceHolder> 
  </form> 
</body> 
</html> 

Lorsque l'on crée une page qui utilise cette masterpage et qui remplit le ContentPlaceHolder, ex :

 
<%@ Page Language="C#" MasterPageFile="~/Site1.Master" AutoEventWireup="false" CodeBehind="Default.aspx.cs" Inherits="testMasterPage._Default" %> 
 
<asp:Content runat="server" ContentPlaceHolderID="ContentPlaceHolder1"> 
  <asp:Label ID="leLabel" runat="server" /> 
</asp:Content> 

Si j'essaie d'accéder à mon label dans le OnPreInit de la page, ex :

 
protected override void OnPreInit(EventArgs e) 

  leLabel.Text = "Mon Label"; // leLabel = null !! 
  base.OnPreInit(e); 

J'aurai une exception parce que mon label vaut null. Argh ! Problème !

[Suite:]

La raison à ce comportement, c'est que dans le PreInit, la masterpage n'est pas encore initialisée.

Pour que mon label ne soit pas null, il faut que je force l'initialisation de ma MasterPage, et accédant à l'objet Master.

On pourra faire ainsi :

 
protected override void OnPreInit(EventArgs e) 

  MasterPage masterPage = Master; 
  leLabel.Text = "Mon Label"; 
  base.OnPreInit(e); 

Désormais, leLabel ne sera plus null et nous serons heureux :)

Social Bookmarking:

                                     

Commentaires, Pingbacks:

Connectez-vous pour vous abonner à cet article:

Flux de commentaires pour cet article : Atom 1.0  RSS 2.0

Cet article n'a pas de Commentaires/Pingbacks pour le moment...

Vous devez être identifié pour poster un commentaire.

Liste des blogs

Blog de Nico-pyright(c)

Catégories


Rechercher

<  Janvier 2012  >
Lun Mar Mer Jeu Ven Sam Dim
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31          

Syndiquez ce blog XML

Articles :

Commentaires :

 
 
 
 
Partenaires

Hébergement Web