1

单击编辑按钮后,如何将焦点设置到 datagridview 行中的特定控件?当网格绑定时,我可以为新行执行此操作,但不能为现有行执行此操作。该控件似乎还不存在。

'这不起作用(现有行)

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
4

1 回答 1

4

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
于 2009-12-14T18:51:21.543 回答