ASP.net - установить фокус на редактирование строки - PullRequest
1 голос
/ 14 декабря 2009

Как установить фокус на конкретный элемент управления в строке представления данных после нажатия кнопки редактирования? Я могу сделать это для новой строки, когда сетка является обязательной, но не для существующей строки. Элемент управления еще не существует.

'Это не работает (существующая строка)

Protected Sub gvDays_RowEditing(ByVal sender As Object, ByVal e As GridViewEditEventArgs) Handles gvDays.RowEditing
        Try
            gvDays.EditIndex = e.NewEditIndex
            gvDays.Rows(e.NewEditIndex).FindControl("txtDayText").Focus()
        Catch ex As Exception
            Helper.WriteException(ex)
        End Try
    End Sub

'Это работает для новой связанной строки

Private Sub gvDays_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles gvDays.RowDataBound
        If e.Row.RowState = DataControlRowState.Edit Then
            e.Row.Cells(3).Controls(0).Focus()
        End If
    End Sub

1 Ответ

4 голосов
/ 14 декабря 2009

gvDays_RowDataBound должно работать, проблема в том, что вы смотрите на e.Row.RowState с помощью оператора =, но RowState это битовый флаг

попробуйте это

Private Sub gvDays_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles gvDays.RowDataBound
        If (e.Row.RowState And DataControlRowState.Edit) = DataControlRowState.Edit Then
            e.Row.Cells(3).Controls(0).Focus()
        End If
End Sub
...