Если выбран GridViewRow, то ... иначе - PullRequest
0 голосов
/ 23 декабря 2010

Хорошо, похоже, это должно быть очень легко сделать, однако я не могу работать без ошибок.У меня есть оператор IfThen, который утверждает, что если строка выбрана, а затем выполнить, в противном случае, отобразить сообщение.Код работает нормально, если я выбираю строку, однако, когда я пытаюсь продолжить работу без выбора строки, вместо сообщения, которое я хочу отобразить, появляется сообщение об ошибке.Вот пример того, что я пытаюсь сделать:

Protected Sub btnReplace(ByVal sender As Object, ByVal e As EventArgs)

    Dim row As GridViewRow = device_list.SelectedRow

    If (row.RowState Or DataControlRowState.Selected) > 0 Then
        Message.Text = "You selected " & row.Cells(1).Text & "."
    Else
        Message.Text = "Please select a device."
    End If

End Sub

Может кто-нибудь помочь мне с этим?

Ответы [ 2 ]

1 голос
/ 23 декабря 2010

Как уже упоминал Мигель, свойство SelectedRow ничего не возвращает, если ни одна строка не выбрана.Поэтому вы должны проверить это:

Dim row As GridViewRow = device_list.SelectedRow
If Not row Is Nothing Then
   Message.Text = "You selected " & row.Cells(1).Text & "."
Else
    Message.Text = "Please select a device."
End If

Вы также можете проверить, является ли SelectedIndex <> -1

 If device_list.SelectedIndex <> -1 Then
    Message.Text = "You selected " & device_list.SelectedRow.Cells(1).Text & "."
 Else
     Message.Text = "Please select a device."
 End If
0 голосов
/ 23 декабря 2010

Если ни одна строка не выбрана, не означает ли это, что «строка» будет оцениваться как «Ничто», поэтому при попытке получить ее RowState вы получите ошибку, поскольку ничего не может иметь RowStates?

Я бы проверил, ничего ли это не так:

Protected Sub btnReplace(ByVal sender As Object, ByVal e As EventArgs)

    Dim row As GridViewRow = device_list.SelectedRow

    If (row <> Nothing Or DataControlRowState.Selected) > 0 Then
        Message.Text = "You selected " & row.Cells(1).Text & "."
    Else
        Message.Text = "Please select a device."
    End If

End Sub
...