2009-12-14 64 views
1

如何设置聚焦到特定的控制在一个DataGridView行单击编辑按钮后?当网格绑定时,我可以为它做一个新行,但不能用于现有的行。控制似乎还没有存在。ASP.net - 将焦点设置到编辑行

'这行不通(现有行)

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

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