Es ist ein alter Thread, aber es ist ein Top-Suchergebnis, so dass es sich lohnt, für die anderen ein paar Notizen hier setzen zu finden:
x.FindControl alle Kontrollen durchsucht, x als den Namenscontainer haben. Das bedeutet, dass FindControl es finden wird, wenn Sie ein Steuerelement in einem Panel haben. FindControl ist NICHT darauf beschränkt, nur Steuerelemente mit übereinstimmender ID zu finden, die in x.Controls aufgeführt sind. Sie könnten sich FindControl als effektives Ausführen einer rekursiven Suche vorstellen, die nur innerhalb von untergeordneten (oder untergeordneten) Steuerelementen, die INamingContainers sind, nicht aussieht.
INamingContainers sind Steuerelemente, die ihren Inhalt als Vorlage verwenden, um Null, eine oder mehrere Kopien der Steuerelemente darin zu erstellen. z.B. Repeater usw.
Wenn Sie also ein Steuerelement in einem Repeater haben, wird es von Page.FindControl nicht gefunden. Die obige rekursive Funktion, die Page als Root verwendet, findet die erste Instanz dieses Steuerelements aus der Repeater-Vorlage. Wenn Sie wissen, dass Sie nur einen Repeater haben, dann OK, gehen Sie darauf (aber Sie könnten genauso gut die rekursive Suche auf dem Repeater-Control starten, nicht auf der ganzen Seite)
Wenn Sie Referenzen auf diese Kontrollen wollen Innerhalb von Benennungscontainern, die nicht die Seite sind, ist es besser, die Referenz vom "Sender" eines Ereignisses zu erhalten, z die OnLoad der Kontrolle, die Sie suchen. Wenn Ihr "Absender" der Benennungscontainer (Repeater-Vorlage) ist, können Sie FindControl verwenden, um zu dem Steuerelement zu gelangen, nach dem Sie suchen.
Wenn keine Repeater beteiligt waren, hatte das ursprüngliche Poster wahrscheinlich nur einen Schreibfehler (die Kontrolle heißt in der ASCX-Datei nicht btn_clear). Müsste das Markup sehen. In diesem Fall ist es wahrscheinlich, warum sie nie nachgegangen sind, aber andere, die denken, dass FindControl innerhalb eines Panels kein Steuerelement finden wird, werden wahrscheinlich diese Seite finden, weshalb ich diese Folge gepostet habe.
Haben Sie das Markup? – Exitos