List<T>
にバインドされたドロップダウンリストに "Select One"オプションを追加したいです。
List<T>
を問い合わせたら、データソースの一部ではなく、最初のItem
をそのList<T>
の最初の要素として追加するにはどうすればよいですか。私は持っています:
// 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;
Insert メソッドを使用してください。
ti.Insert(0, initialItem);
更新:より良いアイデア、 "AppendDataBoundItems"プロパティをtrueに設定し、それから "Choose item"を宣言的に宣言する。データバインド操作は、静的に宣言された項目に追加されます。
<asp:DropDownList ID="ddl" runat="server" AppendDataBoundItems="true">
<asp:ListItem Value="0" Text="Please choose..."></asp:ListItem>
</asp:DropDownList>
- オイシン
List<T>.Insert
を使う
特定の例には関係ありませんが、パフォーマンスが重要な場合は、LinkedList<T>
の先頭に項目を挿入するとすべての項目を移動する必要があるため、List<T>
の使用も検討してください。 ListとLinkedListをいつ使うべきか を参照してください。
List<T>
のInsertメソッドを使います。
List.Insertメソッド(Int32、T):
Inserts
はspecified index
のListの要素です。
var names = new List<string> { "John", "Anna", "Monica" };
names.Insert(0, "Micheal"); // Insert to the first element