Ich habe eine DetailsView, die ich zurückschicke - und darin befindet sich ein UserControl. Ich habe einige Schwierigkeiten in den Postback-Daten gefunden.Suchen von Benutzersteuerelementen im TemplateField von DetailsView
Als Beispiel:
<asp:DetailsView ID="dvDetailsView" runat="Server" AutoGenerateRows="false">
<Fields>
<asp:TemplateField>
<ItemTemplate>
Some text here
</ItemTemplate>
<EditItemTemplate>
<uc:UserControl ID="ucUserControl" runat="server" />
</EditItemTemplate>
<InsertItemTemplate>
<uc:UserControl ID="ucUserControl" runat="server" />
</InsertItemTemplate>
</asp:TemplateField>
</Fields>
</asp:DetailsView>
Als ich Postback, würde ich nehme an, ich so etwas tun würde:
MyUserControlType ucUserControl = dvDetailsView.FindControl("ucUserControl") as MyUserControlType;
Aber das findet nichts. Tatsächlich kann ich dieses Baby nicht sogar finden, indem ich in QuickWatch herum laufe ...
Was muss ich tun, um dieses Ding zu finden ??
EDIT: Es stellt sich heraus, dass meine Benutzersteuer-ID geändert wurde - aber warum? Ich habe die gleiche ID sowohl auf der Einfüge- als auch der Bearbeitungsvorlage, aber das zu kommentieren machte keinen Unterschied.
Noch kann ich dieses Steuerelement nicht finden, obwohl ich ein anderes habe, das ich finden kann (es ist nur ein '' Steuerelement. –
Khanzor
Sind Sie sicher, dass Ihre Detailansicht im Bearbeitungsmodus ist und Sie nach DataBinding tun? Ich nur getestet und das hat funktioniert. Überprüfen Sie 'CurrentMode' Eigenschaft, um zu sehen, ob Sie wirklich im Bearbeitungsmodus sind. –
Keine Zeile sollte vor der Datenbindung vorhanden sein. Ganz zu schweigen von untergeordneten Steuerelementen. –