我有一个从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仍会显示??
你知道这里出了什么问题吗?
答案 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