それは古いスレッドですが、それはそれを見つけるために他人のために、ここでいくつかのノートを置く価値があるように、トップの検索結果です:
x.FindControlは、名前付けコンテナとしてのxを持っているすべてのコントロールを検索します。 これは、パネル内にコントロールがある場合、FindControlがそれを見つけることを意味します。 FindControlは、一致するIDを持つコントロールがx.Controlsにリストされているコントロールだけを検索することに限定されません。 FindControlは、INamingContainerである子(または子の子)コントロール内を見ない再帰的な検索を効果的に行うと考えることができます。
INamingContainerは、コンテンツをテンプレートとして使用して、コントロール内にコントロールを1つ、または複数作成するコントロールです。例えばリピータなど
リピータ内にコントロールがある場合、Page.FindControlはそれを見つけられません。上記の再帰関数は、Pageをルートとして使用して、リピータテンプレートからそのコントロールの最初のインスタンスを検出します。 1つのリピーターしか持たないことが分かっている場合は、確認してください(ページ全体ではなく、リピーターコントロールを再帰的に検索することもできます)
ページではない命名コンテナ内にある場合は、イベントの「送信者」からリファレンスを取得する方がよい後のコントロールのOnLoad。 "送信者"がネーミングコンテナ(リピータテンプレート)である場合、その上のFindControlを使用して、後続のコントロールに移動することができます。
リピーターがない場合は、元のポスターが実際に間違いを犯している可能性があります(ASCXファイルではbtn_clearという名前ではありません)。マークアップを見る必要があります。このケースではおそらく彼らがフォローアップしなかった理由でしょうが、FindControlがPanel内でコントロールを見つけられないと思う人はおそらくこのページを見つけて、このフォローアップを投稿したのです。
マークアップを取得しましたか? – Exitos