2009-07-01 9 views

Antwort

6

Dies ist der Code VB so zu tun ...

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

Hier ist ein C# -Beispiel


(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

Sie haben FindByValue Methode der List-Box

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

+1 ist dies die beste Option meiner Meinung nach, weil es nur eine Iteration durch die benötigten Gegenstände, nicht die gesamte Listbox Sammlung. Ich habe es in meiner eigenen Lösung verwendet, danke Phu! –

0

Ich mag, wo bill berlington wird mit seiner Lösung zu verwenden. Ich möchte nicht die ListBox.Items für jedes Element in meinem Array durchlaufen. Hier ist meine Lösung:

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

In C#:

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