, nico-pyright(c) 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 !
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 ![]()
Cet article n'a pas de Commentaires/Pingbacks pour le moment...
Vous devez être identifié pour poster un commentaire.
| 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 |
Copyright © 2000-2012 - www.developpez.com






















![Validate my RSS feed [Valid RSS]](/img/valid-rss.png)
![Validate my Atom 1.0 feed [Valid Atom 1.0]](/img/valid-atom.png)