проверка списка - PullRequest
       12

проверка списка

0 голосов
/ 07 ноября 2008

как я могу проверить, выбран ли элемент в моем списке или нет? поэтому у меня есть кнопка удалить, но я хочу, чтобы эта кнопка выполнялась, только если элемент выбран в списке. Я использую asp.net код за C #. Я бы предпочел, чтобы эта проверка происходила на стороне сервера.

веселит ..

Ответы [ 6 ]

1 голос
/ 07 ноября 2008

Чтобы удалить несколько элементов, вам нужно разобрать элементы в обратном порядке.

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

Если вы проанализируете как обычно, результат будет довольно неожиданным. Пример: Если вы удалите элемент 0, то элемент 1 станет новым элементом 0. Если вы сейчас попытаетесь удалить то, что, по вашему мнению, является пунктом 1, вы фактически удалите то, что видите как пункт 2.

1 голос
/ 07 ноября 2008

На самом деле SelectedIndex начинается с нуля, поэтому ваш чек должен быть:

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

1 голос
/ 07 ноября 2008

При обратном вызове для нажатия кнопки просто проверьте, является ли выбранный индекс в списке больше или равен нулю.

protected void removeButton_Click( object sender, EventArgs e )
{
    if (listBox.SelectedIndex >= 0)
    {
        listBox.Items.RemoveAt( listBox.SelectedIndex );
    }
}
0 голосов
/ 07 ноября 2008

Чтобы удалить элемент из коллекции, необходимо выполнить цикл в обратном направлении.

for (int i=lbSrc.Items.Count - 1, i>=0, i--)
{
   //code to check the selected state and remove the item
}
0 голосов
/ 07 ноября 2008
for (int i = 0; i < lbSrc.Items.Count; i++)
{
    if (lbSrc.Items[i].Selected == true)
    {
        lbSrc.Items.RemoveAt(lbSrc.SelectedIndex);
    }
}

это то, что я придумал.

0 голосов
/ 07 ноября 2008

Возможно, вы захотите использовать ранний подход, основанный на вашей проблеме и факте, что ListBox.SelectedIndex вернет -1, если ничего не выбрано .

так что позаимствовать часть кода обработчика событий кнопки 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 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...