Es gibt viele Unterschiede zwischen <%# Eval %>
und <%# DataBinder.Eval %>
unter der Decke, obwohl the documentation besagt, dass Eval
mit (TemplateControl.Eval
genau zu sein) DataBinder.Eval
tatsächlich aufruft und ihre Aufgabe ist es genau die gleiche Arbeit zu tun.
Das ist richtig, aber die Verwendung nur Eval
bedeutet, dass ASP.NET selbst das Objekt, das datengebunden ist, auflöst. Dies geschieht intern mit einem Stack, in dem Elemente hinzugefügt werden, wenn Control.DataBind()
aufgerufen wird. Der Trick ist, dass dies nur passiert, wenn die Page
Eigenschaft des Steuerelements zu diesem Zeitpunkt nicht null
ist.
Wenn die Page
--managed Stapel nicht auf dem neuesten Stand ist, wenn Sie auf den Punkt, dass DataItem
Bedürfnisse gelöst werden, die Page.GetDataItem()
Methode wird eine Ausnahme mit einer Meldung wie
Datenbindung Methoden geben, wie Eval()
, XPath()
und Bind()
können nur im Zusammenhang mit einer datengebundenen Steuerung verwendet werden.
DataBinder.Eval
funktioniert immer noch unter diesen Umständen, weil Sie es das Zielobjekt manuell bereitstellen, so ASP.NET keine Lösung für sich allein tun müssen.
Jetzt haben Sie Ihre Antwort ... und es war Echo 2 mal :) –
lol, yep danke. – Xaisoft