こんにちは私はかなりの間この状況に悩まされていますか?ここで何か助けを探していますか?マスターページからコントロールプレイヤーホルダーにアクセスする
私のカスタムマスターページ
がかかる(content.aspx言う)私が次の内容のページからコードsnipetがある(デフォルト一つを参照WebAppのおよびその他のカスタムマスターページのための1つのデフォルト)入れ子になったマスターページを定義していますASPXのソースコード内の
私が含まれています:
とファイルすなわち背後にあるコードでは。 custom.aspx.csは、(問題がある場合である):
ContentPlaceHolder masterContentPlaceHolder = (ContentPlaceHolder)Page.Master.Master.FindControl("MainContent"); //works well
ContentPlaceHolder nestedContentPlaceHolderHeading = (ContentPlaceHolder)masterContentPlaceHolder.FindControl("NestedMasterHeading"); //works well
Label NewsHeadLines = (Label)nestedContentPlaceHolderHeading.FindControl("lblSubSectionHeader"); //returns null?? The Control ID is all checked and is the same in the Nested Master Page.
**NewsHeadLines.Text = "Testing";** //System.NullReferenceException:
オブジェクト参照がオブジェクトのインスタンスに設定されていません。
HTMLテーブル、行、列にコントロール(ここではラベル)を入れ子にしているので、それは起こっていますか?お知らせ下さい?そして私はコントロールの名前やIDをダブルチェックしました。
FindControlを使用する代わりに、適切なコントロールのプロパティ(f。 'Text')へのアクセスを提供するパブリックプロパティをマスターページに提供する必要があります。この場合、プロパティ 'NewsHeadLines'を実装することができます。あなたはいつも(マスター)ページ内のコントロールへのダイレクトリファレンスを持っています。したがって、これらのプロパティにアクセスする前に、マスターを正しいタイプにキャストするだけで済みます。 –
偉大なアイデアティム。しかし、その行を逃した。 Thnx。 – Vaibhav