2011-02-23 14 views
0

私はタッチできないaspxページを持っています。共有ページです。しかし、私はページが提供するナビゲーションコントロールをオーバーライドし、代わりにマスターページのデフォルトのコンテンツを使用したいと思います。だから、私はHTTPハンドラを作成するよう求められています。このハンドラは、ページの要求を代行受信し、既定のコンテンツをオーバーライドしているコントロールを削除します。 1つの問題は、コンテンツコントロールにIDがないことです。私はページのPreInitイベントに夢中になり、ContentPlaceHolderIDプロパティを使ってコントロールを見つける再帰的メソッドを使ってコントロール階層を走査しようとしています。ただし、ページのコントロールプロパティにアクセスすると、マスターページである単一のコントロールが表示されます。 .aspxページの他のコントロールにアクセスできないようです。HttpHandlerがコンテンツコントロールを見つけることができません

誰でもコンテンツコントロールを見つける方法を知っていますか?

+0

MasterPageのControlsプロパティを見ましたか?または、MasterPage上のコントロールのControlsプロパティを見ましたか? –

+0

はい。私の関数は、Controlsプロパティを使用して再帰します。このメソッドは、ContentPlaceHolderを見つけるだけで、子コントロールはデフォルトのコンテンツです。 – CamronBute

+0

エディタが私のタグを拒否しました!私はコンテンツページのコンテンツコントロールを探しています... – CamronBute

答えて

0

MSDNのこの記事では、コントロールコレクションをナビゲートする方法について説明します。 Master Page Controls

+0

申し訳ありません、適切な記事ではありません – CamronBute

+0

オーバーライドされたコンテンツへのアクセスに関するこのノートを見ましたか? (マスターページにContentPlaceHolderコントロールのコントロールが含まれている場合、コンテンツページからContentコントロールによってオーバーライドされた場合はアクセスできません)。コントロールには直接アクセスできません。ただし、FindControlメソッドを使用して、マスターページの特定のコントロールを見つけることができます。アクセスするコントロールが、マスタページのContentPlaceHolderコントロール内にある場合は、まずContentPlaceHolderコントロールへの参照を取得してから、FindControlメソッドを呼び出してコントロールへの参照を取得する必要があります。 – Tony

関連する問題