Freigeben über


Erstellen einer benutzerdefinierten Spalte in einem GridView-Webserversteuerelement

Aktualisiert: November 2007

Das GridView-Steuerelement kann aus den von der Datenquelle bereitgestellten Feldern automatisch Spalten generieren. Sie können auch eine Auflistung der anzuzeigenden Spalten erstellen, anstatt sie automatisch generieren zu lassen. Unter gewissen Umständen muss die Anzeige einzelner Spalten angepasst werden. Für diesen Fall können Sie ein TemplateField erstellen und damit ein benutzerdefiniertes Spaltenlayout 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 Spalte in einem GridView-Steuerelement enthalten. Mit der ItemTemplate können Sie ein Layout angeben, das beim Anzeigen von Daten in einer Spalte durch das GridView-Steuerelement verwendet wird. Um für das Bearbeiten von Daten in einer Spalte durch den Benutzer ein benutzerdefiniertes Layout anzugeben, können Sie eine EditItemTemplate erstellen.

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 nur Werte anzeigt, verwenden Sie die Eval-Methode. Wenn die Benutzer Datenwerte 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 erlauben. Weitere Informationen finden Sie unter Übersicht über Datenbindungsausdrücke.

Beispiel

Das folgende Beispiel zeigt die Columns-Auflistung eines GridView-Steuerelements. Die Auflistung enthält ein TemplateField-Objekt, das wiederum ein ItemTemplate-Objekt enthält. Für die Datumsanzeige enthält ItemTemplate ein Label-Steuerelement, das die Eval-Methode verwendet. Zum Bearbeiten des Datums enthalten die anderen Vorlagen ein Calendar-Steuerelement, das die Bind-Methode verwendet.

<Columns>                  
  <asp:BoundField DataField="EmployeeID" HeaderText="Employee ID" 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>
    <EditItemTemplate>
      <asp:Calendar ID="EditBirthDateCalendar" Runat="Server"
                    VisibleDate='<%# Eval("BirthDate") %>'
                    SelectedDate='<%# Bind("BirthDate") %>' />
    </EditItemTemplate>
  </asp:TemplateField>   
  <asp:HyperLinkField Text="Show Detail"
                      DatahrefFormatString="~/ShowEmployeeDetail.aspx?EmployeeID={0}"
                      DatahrefFields="EmployeeID" />                   
</Columns> 
<Columns>                  
  <asp:BoundField DataField="EmployeeID" HeaderText="Employee ID" 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>
    <EditItemTemplate>
      <asp:Calendar ID="EditBirthDateCalendar" Runat="Server"
                    VisibleDate='<%# Eval("BirthDate") %>'
                    SelectedDate='<%# Bind("BirthDate") %>' />
    </EditItemTemplate>
  </asp:TemplateField> 
  <asp:HyperLinkField Text="Show Detail"
                      DatahrefFormatString="~/ShowEmployeeDetail.aspx?EmployeeID={0}"
                      DatahrefFields="EmployeeID" />                   
</Columns> 

Siehe auch

Konzepte

Übersicht über datengebundene ASP.NET-Webserversteuerelemente

Übersicht über Datenquellensteuerelemente

Referenz

Übersicht über das GridView-Webserversteuerelement