2008-12-24 43 views
277

Tôi muốn thêm tùy chọn "Chọn một" vào danh sách thả xuống được gắn với List<T>.Cách thêm mục vào đầu Danh sách <T>?

Khi tôi truy vấn List<T>, làm cách nào để thêm Item ban đầu của tôi, không phải là một phần của nguồn dữ liệu, làm phần tử FIRST trong số List<T>? Tôi có:

// 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; 

Trả lời

511

Sử dụng Insert phương pháp:

ti.Insert(0, initialItem); 
+9

Có bất kỳ ý nghĩa về hiệu suất nào đối với Matt này không? –

+3

@BrianF, Có bạn đã đúng. Doc: ['Phương thức này là một phép toán O (n), trong đó n là Số đếm .'] (https://msdn.microsoft.com/ru-ru/library/sey5k5z4%28v=vs.110%29.aspx? f = 255 & MSPPError = -2147217396) – 23W

+3

@ 23W Bạn nên liên kết tới trang tiếng Anh nếu bạn định liên kết tới MSDN. – mbomb007

23

Cập nhật: ý tưởng tốt hơn, đặt thuộc tính "AppendDataBoundItems" thành true, sau đó khai báo "Chọn mục" một cách khai báo. Hoạt động databinding sẽ thêm vào mục được khai báo tĩnh.

<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

Điều đó thật tuyệt. OP không chỉ định ASP.NET nhưng đó là một mẹo hay để biết. –

+2

Đó là mẹo ... dễ dàng hơn nhiều so với việc tạo ra một yếu tố tùy chỉnh ..... cảm ơn! –

1

Sử dụng Chèn phương pháp List<T>:

List.Insert Method (Int32, T): Inserts một phần tử vào Danh sách tại specified index.

Các vấn đề liên quan