マスターページにバインドされたaspxページでControl
を見つける必要があります。
マスターページには次のものが含まれます。
<asp:ContentPlaceHolder ID="MainContent" runat="server"/>
コンテンツページには次のものが含まれます。
<asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" Runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" Runat="Server">
</asp:Content>
Content2
の子としてTable
とID
formtable
を追加しました。
次のコードを使用してTable
にアクセスしようとしましたが、コードはnull
を返します。
protected void Ok_Click(object sender, EventArgs e)
{
Table tblForm = this.FindControl("MainContent").FindControl("formtable") as Table;
}
Table
にアクセスするにはどうすればよいですか?
これを試して
Table tblForm = this.Master.FindControl("MainContent").FindControl("formtable") as Table;
これをチェックアウト コンテンツページでのコントロールIDの命名 詳細については
FindControl()を使用すると、問題が発生することがあります。マスターページでそのコントロールのパブリックプロパティを定義してから、プロパティを介してコントロールにアクセスする方が簡単です。
子ページに次の行を追加する必要があります。
<%@ MasterType VirtualPath="~/MasterPage.master" %>
これを行おうとしているとき、あなたはどのような状況にありますか?あなたは個々のページのコードビハインドにいますか?
もしそうなら、それはContent1.FindControl("formtable") as Table
でなければならず、それはそれでしょう。