删除单选按钮列表项

时间:2018-10-24 12:57:41

标签: ado.net

我有一个从DB填充的单选按钮列表,其中包含五个选项符号。 在特定条件下,我想删除选项2到5,但令人惊讶的是我无法删除选项3?

我正在使用以下代码:

Dim DRPlace As SqlDataReader = myCommand.ExecuteReader(CommandBehavior.CloseConnection)
        rdDelPlace.DataSource = DRPlace
        rdDelPlace.DataBind()
        Dim ZipCode As Integer
        ZipCode = CInt(txbZip.Text)
        If txbZip.Text = 10240 Then
            For i As Integer = 0 To 5
                If i > 1 Then
                    rdDelPlace.Items.RemoveAt(i)
                End If
            Next

在上述情况下,单选按钮列表应仅显示0和1选项,但在删除选项2,4和5时,选项3仍会显示??

你知道这里出了什么问题吗?

1 个答案:

答案 0 :(得分:0)

您要在减小列表长度的同时删除数组位置 i 的项目。那是一个非常糟糕的主意。在删除位置> = 2的任何内容之前,您应验证列表中至少包含3个元素。此外,如果要删除位置2至5中的项目(包括两个端点),则意味着要删除4元素,从位置3开始,因此循环执行4次以删除位置2处的元素(使用从0开始)

    Dim DRPlace As SqlDataReader = myCommand.ExecuteReader(CommandBehavior.CloseConnection)
    rdDelPlace.DataSource = DRPlace
    rdDelPlace.DataBind()
    Dim ZipCode As Integer
    ZipCode = CInt(txbZip.Text)
    If txbZip.Text = 10240 Then
        For i As Integer = 1 To 4
            If i > 1 && rdDelPlace.Items.Length > 1 Then
                rdDelPlace.Items.RemoveAt(2)
            End If
        Next