Accès au contrôle de la page en CodeBehind C#
Bonjour à tous.
Je me trouve confronté à un problème basique mais j'ai du mal à comprendre où je me suis planté n'étant aps encire trés familier avec la syntaxe du C# (parce que je crois que le problème vient de là).
Donc j'ai une page avec ce code côté HTML :
Code:
1 2 3 4 5 6 7 8
|
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" MasterPageFile="~/MasterPage/Default.master" EnableEventValidation="false" Culture="fr-FR" EnableViewState="true" %>
<asp:Content ID="cHeader" runat="server" ContentPlaceHolderID="cphHeader"></asp:Content>
<asp:Content ID="cEntete" ContentPlaceHolderID="cphEnTete" Runat="Server"></asp:Content>
<asp:Content ID="cGauche" ContentPlaceHolderID="cphGauche" Runat="Server"></asp:Content>
<asp:Content ID="cCentral" ContentPlaceHolderID="cphCentral" Runat="Server"></asp:Content>
<asp:Content ID="cDroite" ContentPlaceHolderID="cphDroite" Runat="Server"></asp:Content>
<asp:Content ID="CPied" ContentPlaceHolderID="cphPied" Runat="Server"></asp:Content> |
Donc en gros que des ContentPlaceHolder qui font référence à ceux placés dans la MasterPage.
Dans mon CodeBehind j'ai mis cela :
Code:
1 2 3 4 5 6 7 8 9 10
|
protected void Page_Init(object sender, EventArgs e)
{
if (Request.QueryString["valhalla"] == "loki")
{
Label lblMaintenance = new Label();
lblMaintenance.Text = "Le site est actuellement en maintenance. Veuilez nous excuser pour la gêne occasionnée";
this.Page.FindControl("cCentral").Controls.Add(lblMaintenance);
}
} |
Le truc est simple : si la QueryString est comme cela, il faut afficher une Label qui dit que le site est en maintenance.
Mais à l'éxécution de la page il me dit :
Citation:
La référence d'objet n'est pas définie à une instance d'un objet.
Sur la ligne qui fait le Controls.Add.
Alors deux choses :
- j'ai du mal à comprendre où il veut que je fasse un new puisque le ContentPlaceHolder est dans la page, côté HTML
- je n'ai pas réussi à y accéder directement au ContentPlaceHolder, en tapant son identifiant.
Aurais je loupé un détail ?