2008-11-07 5 views
0

Comment puis-je vérifier si un article est sélectionné ou non dans ma liste? donc j'ai un bouton à supprimer, mais je veux seulement que ce bouton s'exécute si un élément est sélectionné dans la zone de liste. im en utilisant le code asp.net derrière C#. Je préférerais que cette validation se fasse du côté serveur.validation de la liste de sélection

acclamations ..

Répondre

-1
for (int i = 0; i < lbSrc.Items.Count; i++) 
{ 
    if (lbSrc.Items[i].Selected == true) 
    { 
     lbSrc.Items.RemoveAt(lbSrc.SelectedIndex); 
    } 
} 

ce que je suis venu avec.

1

Sur le rappel du bouton clic, il suffit de cocher si l'index sélectionné de la zone de liste est supérieure ou égale à zéro.

protected void removeButton_Click(object sender, EventArgs e) 
{ 
    if (listBox.SelectedIndex >= 0) 
    { 
     listBox.Items.RemoveAt(listBox.SelectedIndex); 
    } 
} 
+0

corrigée avec @ jons911 observation. – tvanfosson

1

En fait, SelectedIndex est basé sur zéro, de sorte que votre chèque doit être:

if (listBox.SelectedIndex> = 0) ...

0

Vous pouvez aller à la le début de l'approche basée sur votre prob desc & le fait que ListBox.SelectedIndex renverra -1 si rien n'est sélectionné.

donc d'emprunter une partie du code du gestionnaire d'événements de bouton de tvanfosson.

protected void removeButton_Click(object sender, EventArgs e) 
{ 
    if (listBox.SelectedIndex < 0) { return; } 
    // do whatever you wish to here to remove the list item 
} 
0

Pour supprimer un élément d'une collection, vous devez effectuer une boucle en arrière.

for (int i=lbSrc.Items.Count - 1, i>=0, i--) 
{ 
    //code to check the selected state and remove the item 
} 
1

Pour supprimer plusieurs éléments, vous devez analyser les éléments à l'envers.

protected void removeButton_Click(object sender, EventArgs e) 
{ 
    for (int i = listBox.Items.Count - 1; i >= 0; i--) 
     listBox.Items.RemoveAt(i); 
} 

Si vous analysez comme d'habitude alors le résultat sera tout à fait inattendu. Ex: Si vous supprimez l'article 0, point 1 devient le nouvel élément 0. Si vous essayez maintenant de supprimer ce que vous croyez point 1, vous allez supprimer réellement ce que vous voyez comme élément 2.

Questions connexes