Nehmen Sie zum Beispiel eine DetailsView
Steuerung mit einer ObjectDataSource
als Datenquelle.Wie referenziere ich das datengebundene Steuerelement von einem ObjectDataSource-Ereignis?
Normalerweise im DetailsView.ItemUpdated
Ereignis sehe ich einen Verweis auf die Details greifen würde durch die sender
Gießen:
DetailsView dv = (DetailsView)sender;
In bestimmten Situationen wird es notwendig, die Veranstaltung innerhalb der ObjectDataSource.ItemUpdated
Ereignis zu behandeln. In diesem Fall ist sender
jetzt vom Typ ObjectDataSource
. Was ich will, ist zu tun, um der Lage sein, sauberen Code schreiben, der wie
Label label1 = DetailsView1.FindControl("Label1");
fest einprogrammiert isnt ich über die Dokumentation geschaut und auch einige Recherchen haben aber konnte nicht finden, wie ich einige Code wie folgt schreiben würde:
protected void ObjectDataSource1_Inserted(object sender, ObjectDataSourceStatusEventArgs e)
{
ObjectDataSource ods = (ObjectDataSource)sender;
DetailsView dv = (DetailsView)ods.SOMETHING_HERE;
}
Weiß jemand, was ich in das SOMETHING_HERE
oben in dem Schnipsel setzen sollte?
Vielen Dank für Ihre Antwort. Der Grund, dass ich das mache, ist, weil ich eine benutzerdefinierte 'UserControl' geschrieben habe, die eine' TreeView' mit Checkboxen hat. Es erlaubt dem Benutzer, Kurse/Kategorien zu wählen, in denen das Objekt angezeigt werden soll. Ich muss einen Verweis auf dieses Steuerelement erhalten, damit ich eine andere Datenbanktabelle aktualisieren kann, nachdem das Hauptelement aktualisiert wurde. Ich habe das Problem einfach dadurch gelöst, dass ich den DetailsView-Namen einfach fest codierte, aber ich dachte, dass es eine Art von Eigenschaft wie .Parent oder .NamingContainer geben könnte, sodass der Code nicht so spröde ist. – rtpHarry
Es ist schwer zu beantworten, ohne auf Ihren Code zu schauen. Wie auch immer es einen Verweis auf ein Objekt gibt, auf dessen Eigenschaften Sie zugreifen können: Sie können von der Benutzersteuerung auf die Steuerelemente zugreifen, die es enthält, und von dem Webcontrol können Sie auf das übergeordnete Element (Seite oder Benutzersteuerelement) zugreifen. –