0

私はマスターページを持っています。以下はデザイナーの部分です。

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title></title>
    <asp:ContentPlaceHolder ID="head" runat="server">
    </asp:ContentPlaceHolder>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
            <asp:Label ID="lblMaster" runat="server" Text=""></asp:Label>
        </asp:ContentPlaceHolder>
    </div>
    </form>
</body>
</html>

マスターページの page_load に、 lblMaster.Text = "Master"; と書きます。

私のAsp.Netページでは、

<%@ Page Title="" Language="C#" MasterPageFile="~/Site1.Master" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="MasterPractice.WebForm1" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
    <asp:Label ID="lblfrm" runat="server" Text="Label"></asp:Label>
</asp:Content>

私のpage_loadでは、

lblfrm.Text = "Form";

マスター ページで前述のエラーが発生しています。

言及された懸念について私を導いてください。

4

1 に答える 1

1

はコントロールLabel内にあるため、まず への参照を取得してから、そのメソッドを使用して を見つける必要があります。ContentPlaceHolderContentPlaceHolderFindControlLabel

ContentPlaceHolder Content2;
Label  lblfrm;
Content2 = (ContentPlaceHolder)Master.FindControl("Content2");
if(Content2 != null)
{
    lblfrm = (Label) Content2.FindControl("lblfrm");
    if(lblfrm != null)
    {
        lblfrm.Text = "Form";
    }
}

方法: ASP.NET マスター ページのコンテンツを参照する

編集lblMaster:コメントで要求されたように見つけるには:

ContentPlaceHolder ContentPlaceHolder1;
Label  lblMaster;
ContentPlaceHolder1 = (ContentPlaceHolder)Master.FindControl("ContentPlaceHolder1");
if(ContentPlaceHolder1 != null)
{
    lblMaster = (Label) ContentPlaceHolder1.FindControl("lblMaster");
    if(lblMaster != null)
    {
        lblMaster.Text = "Master";
    }
}
于 2012-10-16T07:35:12.737 に答える