Sie sollten die Steuerelemente verfügbar machen, die von außen als Eigenschaften veränderbar und zugänglich sind. MSDN
Aber denken Sie daran, nicht die gesamte Kontrolle selbst zu exponieren, sondern nur f.e. eine Text-Eigenschaft einer Textbox, weil dadurch unbeabsichtigtes und unvorhersehbares Verhalten verhindert wird. Ein Benutzer-Steuerelement sollte Komplexität einkapseln und sollte (meistens) wiederverwendbar sein. Je mehr Kontrolle Sie den Steuerelementen (z. B. der Seite) bieten, die die Benutzersteuerung verwenden, desto weniger wiederverwendbar und um so fehlerhafter sind sie.
Wenn Sie zum Beispiel ein Login-Control mit einem Textfeld für den Benutzernamen und einem Textfeld für das Passwort erstellt haben, ist es sinnvoll, die Eigenschaften Benutzername und Passwort anstelle der Textboxen selbst anzugeben. Die Eigenschaften geben jeweils den entsprechenden Textbox-Text-Wert zurück.
In Ihrem Beispiel mit der TableRow, was ist ihr Zweck? Sie sollten eine Eigenschaft mit einem aussagekräftigen Namen angeben, um ihre Sichtbarkeit zu steuern (zB ShowTitle
, wenn die Zeile einen Titel enthält, würde der Getter/Setter den sichtbaren Status der aktuellen Tabellenzeile zurückgeben/setzen).
Natürlich benötigen Sie einen Verweis auf Ihr Benutzersteuerelement, wenn Sie auf seine Eigenschaften zugreifen möchten. Sie sollten den Quellcode angeben, wenn Sie Probleme haben, ihn auf der Seite zu finden. Es hängt davon ab, wo Sie es erstellt und hinzugefügt haben. Normalerweise finden Sie Steuerelemente mit FindControl auf der NamingContainer (z. B. der NamingContainer eines Steuerelements, das in einer TemplateColumn von GridView definiert ist, ist die GridViewRow selbst).
Findcontrol nicht rekursiv ist. Sie müssten genau wissen, zu welchem Container es hinzugefügt wurde. In einer dynamisch hinzugefügten Umgebung ist es möglich, dass das Steuerelement, nach dem er sucht, nicht einer ist, zu dessen Namen er den Namen zur Laufzeit kennt. –