2009-07-01 2 views

Odpowiedz

6

jest to kod VB to zrobić ...

myListBox.SelectionMode = Multiple 
For each i as listBoxItem in myListBox.Items 
    if i.Value = WantedValue Then 
     i.Selected = true 
    end if 
Next 
12

Oto próbka C#


(aspx)

<form id="form1" runat="server"> 
     <asp:ListBox ID="ListBox1" runat="server" > 
      <asp:ListItem Value="Red" /> 
      <asp:ListItem Value="Blue" /> 
      <asp:ListItem Value="Green" /> 
     </asp:ListBox> 
     <asp:Button ID="Button1" 
        runat="server" 
        onclick="Button1_Click" 
        Text="Select Blue and Green" /> 
</form> 

(Code Behind)

protected void Button1_Click(object sender, EventArgs e) 
{ 
    ListBox1.SelectionMode = ListSelectionMode.Multiple;    
    foreach (ListItem item in ListBox1.Items) 
    { 
      if (item.Value == "Blue" || item.Value == "Green") 
      { 
       item.Selected = true; 
      } 
    } 
} 
11

Trzeba będzie użyć metody FindByValue z ListBox

foreach (string selectedValue in SelectedValuesArray) 
        { 
         lstBranch.Items.FindByValue(selectedValue).Selected = true; 
        } 
+1

+1 jest to najlepsza opcja moim zdaniem, ponieważ tylko iteracji potrzebnych elementów, a nie całej kolekcji listbox. Użyłem go w moim własnym rozwiązaniu, dzięki Phu! –

0

Lubię gdzie bill berlington się dzieje z jego rozwiązania. Nie chcę iterować poprzez ListBox.Items dla każdego elementu w mojej tablicy. Oto moje rozwiązanie:

foreach (int index in indicesIntArray) 
{ 
    applicationListBox.Items[index].Selected = true; 
} 
1

W języku C#:

foreach (ListItem item in ListBox1.Items) 
{ 
    item.Attributes.Add("selected", "selected"); 
}