列表框验证

时间:2008-11-07 03:19:10

标签: c# asp.net listbox validation

如何检查列表框中是否选择了某个项目? 所以我有一个按钮删除,但我只想在列表框中选择一个项目时执行该按钮。我在C#后面使用asp.net代码。我更喜欢这种验证是否发生在服务器端。

欢呼声..

6 个答案:

答案 0 :(得分:1)

在按钮单击的回调中,只需检查列表框的选定索引是否大于或等于零。

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

答案 1 :(得分:1)

实际上,SelectedIndex是从零开始的,所以你的检查必须是:

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

答案 2 :(得分:1)

要删除多个项目,您需要反向解析这些项​​目。

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项。

答案 3 :(得分:0)

您可能希望根据您的概率设置采用早期突破方法。事实是 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 
}

答案 4 :(得分:0)

要从集合中删除项目,您需要向后循环。

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

答案 5 :(得分:-1)

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

这就是我想出来的。