17

Controlマスターページにバインドされたaspxページでを見つける必要があります。

マスターページには次のものが含まれます。

<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>

の子としてTablewithを追加しました。ID formtableContent2

次のコードを使用してにアクセスしようとしましたTableが、コードは次のようになりますnull

protected void Ok_Click(object sender, EventArgs e)
{
    Table tblForm = this.FindControl("MainContent").FindControl("formtable") as Table;                 
}

どうすればアクセスできますTableか?

4

3 に答える 3

33

これを試して

Table tblForm = this.Master.FindControl("MainContent").FindControl("formtable") as Table; 

詳細については、コンテンツページでこのコントロールIDの命名を確認してください

于 2010-09-15T18:38:48.227 に答える
1

findControl()を使用すると、問題が発生することがあります。マスターページでそのコントロールのパブリックプロパティを定義してから、プロパティを介してコントロールにアクセスする方が簡単です。

子ページに次の行を追加する必要があります。

<%@ MasterType VirtualPath="~/MasterPage.master" %>
于 2016-09-18T11:29:28.193 に答える
0

あなたがこれを行おうとしているとき、あなたはどのような状況にありますか?あなたは個々のページのコードビハインドにいますか?

もしあなたがそうなら、そうあるべきでContent1.FindControl("formtable") as Tableあり、それはそれでしょう。

于 2010-09-15T18:36:31.053 に答える