Erstellen einer benutzerdefinierten Zeile in einem DetailsView-Webserversteuerelement
Aktualisiert: November 2007
Das DetailsView-Steuerelement kann aus den von der Datenquelle bereitgestellten Feldern automatisch Zeilen generieren. Außerdem können Sie auch eine Auflistung mit den anzuzeigenden Zeilen angeben, statt diese automatisch generieren zu lassen. Unter Umständen muss die Anzeige einzelner Zeilen angepasst werden. Für diesem Fall können Sie ein TemplateField erstellen und so ein benutzerdefiniertes Layout angeben.
Erstellen von Vorlagen
Mit einem TemplateField-Objekt können Sie Vorlagen angeben, die Markup und Steuerelemente zum Anpassen des Layouts und des Verhaltens einer Zeile in einem DetailsView-Steuerelement enthalten. Verwenden Sie ItemTemplate, um ein Layout anzugeben, das beim Anzeigen einer Zeile durch das DetailsView-Steuerelement verwendet wird. Erstellen Sie InsertItemTemplate, um ein benutzerdefiniertes Layout anzugeben, das beim Einfügen einer neuen Datenzeile durch den Benutzer verwendet wird. Erstellen Sie EditItemTemplate, um ein benutzerdefiniertes Layout anzugeben, das beim Bearbeiten einer Datenzeile durch den Benutzer verwendet wird.
Die Vorlage kann Markup, Webserversteuerelemente und Befehlsschaltflächen enthalten. Weitere Informationen zu Vorlagen finden Sie unter Vorlagen für ASP.NET-Webserver-Steuerelemente.
Datenbindung in einer Vorlage
In einer Vorlage können Sie mit der Eval-Methode und der Bind-Methode Steuerelemente an Daten binden. Wenn das Steuerelement die Werte nur anzeigt, verwenden Sie die Eval-Methode. Wenn die Benutzer die Datenwerte auch bearbeiten können, z. B. für das Aktualisieren von Daten, verwenden Sie die Bind-Methode. Die Eval-Methode lässt sich in einer beliebigen Vorlage zum Anzeigen von Daten verwenden. Verwenden Sie die Bind-Methode in Vorlagen mit Steuerelementen, deren Werte der Benutzer ändern kann (wie bei einem TextBox-Steuerelement oder einem CheckBox-Steuerelement) oder in Vorlagen, die das Löschen von Datensätzen zulassen. Weitere Informationen finden Sie unter Übersicht über Datenbindungsausdrücke.
Beispiel
Das folgende Beispiel zeigt die Fields-Auflistung eines DetailsView-Steuerelements. Die Auflistung enthält ein TemplateField-Objekt, das wiederum die Objekte ItemTemplate, InsertItemTemplate und EditItemTemplate enthält. Für die Datumsanzeige enthält ItemTemplate ein Label-Steuerelement, das die Eval-Methode verwendet. Um ein Datum einzufügen oder zu bearbeiten, enthalten die anderen Vorlagen ein Calendar-Steuerelement, das die Bind-Methode verwendet.
<Fields>
<asp:BoundField DataField="EmployeeID" HeaderText="Employee ID" InsertVisible="False" ReadOnly="true"/>
<asp:BoundField DataField="FirstName" HeaderText="First Name"/>
<asp:BoundField DataField="LastName" HeaderText="Last Name"/>
<asp:TemplateField HeaderText="Birth Date">
<ItemTemplate>
<asp:Label ID="BirthDateLabel" Runat="Server"
Text='<%# Eval("BirthDate", "{0:d}") %>' />
</ItemTemplate>
<InsertItemTemplate>
<asp:Calendar ID="InsertBirthDateCalendar" Runat="Server"
SelectedDate='<%# Bind("BirthDate") %>' />
</InsertItemTemplate>
<EditItemTemplate>
<asp:Calendar ID="EditBirthDateCalendar" Runat="Server"
VisibleDate='<%# Eval("BirthDate") %>'
SelectedDate='<%# Bind("BirthDate") %>' />
</EditItemTemplate>
</asp:TemplateField>
</Fields>
<Fields>
<asp:BoundField DataField="EmployeeID" HeaderText="Employee ID" InsertVisible="False" ReadOnly="true"/>
<asp:BoundField DataField="FirstName" HeaderText="First Name"/>
<asp:BoundField DataField="LastName" HeaderText="Last Name"/>
<asp:TemplateField HeaderText="Birth Date">
<ItemTemplate>
<asp:Label ID="BirthDateLabel" Runat="Server"
Text='<%# Eval("BirthDate", "{0:d}") %>' />
</ItemTemplate>
<InsertItemTemplate>
<asp:Calendar ID="InsertBirthDateCalendar" Runat="Server"
SelectedDate='<%# Bind("BirthDate") %>' />
</InsertItemTemplate>
<EditItemTemplate>
<asp:Calendar ID="EditBirthDateCalendar" Runat="Server"
VisibleDate='<%# Eval("BirthDate") %>'
SelectedDate='<%# Bind("BirthDate") %>' />
</EditItemTemplate>
</asp:TemplateField>
</Fields>
Siehe auch
Konzepte
Übersicht über datengebundene ASP.NET-Webserversteuerelemente
Übersicht über Datenquellensteuerelemente