2016-10-20 1 views
0

У меня есть выпадающий список следующим образомПочему в раскрывающемся списке выбран элемент?

<asp:Label runat="server" Text="Available Items"></asp:Label> 
<asp:DropDownList runat="server" ID="ddItems" /> 

Вот как данные заполняется в этом выпадающем списке.

protected void Page_Load(object sender, EventArgs e) 
     { 
      this.ddItems.Items.Add(new ListItem("first item", "1")); 
      this.ddItems.Items.Add(new ListItem("second item", "2")); 
      this.ddItems.Items.Add(new ListItem("third item", "3")); 
      this.ddItems.SelectedIndex = -1; 
     } 

Поскольку SelectedIndex устанавливается равным -1, я ожидаю, никакие пункты не будут выбраны, но первый элемент появляется в выпадающем списке.

enter image description here

Что я делаю неправильно?

+1

У вас не было предмета в выпадающем списке с надписью «пожалуйста, выберите» (или какое-то другое сообщение), чтобы указать, что ничего не выбрано? – Paulj

ответ

1

-1 не относится к позиции в списке, поэтому вам необходимо добавить элемент с текстом по умолчанию или пустой строкой.

Protected void Page_Load(object sender, EventArgs e) 
    { 
     // You can set the first list item text to empty string as well 
     this.ddItems.Items.Add(new ListItem("select an item", "")); 
     this.ddItems.Items.Add(new ListItem("first item", "1")); 
     this.ddItems.Items.Add(new ListItem("second item", "2")); 
     this.ddItems.Items.Add(new ListItem("third item", "3")); 

     //This is no longer required as the default selected index is 0 
     this.ddItems.SelectedIndex = 0; 
    }