DevTrain

Autor: Hannes Preishuber

DropDown Liste in Gridview

Für das editieren von Daten innerhalb des Gridview Steuerelements stehen textbox und Checkbox zur Verfügung. Manchmal möchte man den Benutzer aber aus einer Liste auswählen lassen. Dazu kann eine Drop Down Liste Verwendet werden.

Entscheidend ist, das im Gridview dazu statt einem Bound Field ein Template Field zum Einsatz kommt. Für jeden Modus gibt es dann ein eigenes Template.

<asp:TemplateField HeaderText="PostalCode" SortExpression="PostalCode">

<EditItemTemplate>

<asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("PostalCode") %'></asp:TextBox>

</EditItemTemplate>

<ItemTemplate>

<asp:Label ID="Label1" runat="server" Text='<%# Bind("PostalCode") %>'></asp:Label>

</ItemTemplate>

</asp:TemplateField>

Statt der Textbox wird dann eine Drop DownListe eingebaut. Die Daten, hier die Postleitzahelnb können dann aus einer anderen Datenquelle stammen. Zusätzlich müssen die Attribtue Datatextfield und DataValueField defineiren welche Werte in der Liste angezeigt bzw ausgewählt werden.

Die Datenbindung selber wird über das Attirbut SelectedVlaue erstellt. Dieses wird von Intellisense nicht angezeigt. Wenn die Vorlagenspalte (Edit Template) visuell im Editor bearbeitet wird, kann über die Databindings dieser Wert gesetzt werden.

<EditItemTemplate>

<asp:DropDownList ID="DropDownList1" runat="server"

DataSourceID="sqlDSPLZ" DataValueField="postalcode" DataTextField="postalcode" SelectedValue='<%# Bind("PostalCode") %>'>

</asp:DropDownList>

</EditItemTemplate>

Achten Sie darauf das es zu einem Laufzeitfehler kommt wenn im Tabellenfeld ein Wert steht der nicht in der DrowDownliste enthalten ist. Dies kann z.B. bei einem DBNull passieren. Für diesen Fall wird es hier einen extra Artikel geben.

 

 


Erfasst am: 02.02.2006 - Artikel-URL: http://www.devtrain.de/news.aspx?artnr=967
© Copyright 2003 ppedv AG - http://www.ppedv.de