2008-12-24 4 views
277

Ich möchte eine "Select One" -Option zu einer Dropdown-Liste an eine List<T> gebunden hinzufügen.Wie füge ich einen Eintrag zum Anfang der Liste hinzu? <T>?

Sobald ich für die List<T> Abfrage, wie füge ich meine ursprüngliche Item, nicht Teil der Datenquelle, als das erste Element in diesem List<T>? Ich habe:

// populate ti from data    
List<MyTypeItem> ti = MyTypeItem.GetTypeItems();  
//create initial entry  
MyTypeItem initialItem = new MyTypeItem();  
initialItem.TypeItem = "Select One";  
initialItem.TypeItemID = 0; 
ti.Add(initialItem) <!-- want this at the TOP!  
// then  
DropDownList1.DataSource = ti; 

Antwort

511

Verwenden der Insert Methode:

ti.Insert(0, initialItem); 
+9

Gibt es irgendwelche Auswirkungen auf die Leistung dieses Matt? –

+3

@BrianF, Ja, Sie haben Recht. Doc: ['Diese Methode ist eine O (n) -Operation, wobei n Count ist.] (Https://msdn.microsoft.com/ru-ru/library/sey5k5z4%28v=vs.110%29.aspx? f = 255 & MSPPError = -2147217396) – 23W

+3

@ 23W Sie sollten wahrscheinlich auf die englische Seite verlinken, wenn Sie eine Verbindung zu MSDN herstellen. – mbomb007

23

Update: eine bessere Idee, stellen Sie den „AppendDataBoundItems“ Eigenschaft auf true, dann erklären die „Wählen Sie Punkt“ deklarativ. Die Datenbindungsoperation wird zu dem statisch deklarierten Element hinzugefügt.

<asp:DropDownList ID="ddl" runat="server" AppendDataBoundItems="true"> 
    <asp:ListItem Value="0" Text="Please choose..."></asp:ListItem> 
</asp:DropDownList> 

http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.listcontrol.appenddatabounditems.aspx

-Oisin

+2

Das ist ziemlich cool. Das OP hat ASP.NET nicht angegeben, aber das ist ein netter Trick. –

+2

Das ist der Trick ... viel einfacher als ein benutzerdefiniertes Element zu erstellen ..... Danke! –

1

Verwendung Insert Methode List<T>:

List.Insert-Methode (Int32, T): Inserts ein Element in die Liste an der specified index.

Verwandte Themen