This was pissing me off for a good hour: RowDataBound event after you call edit on a row, I was checking for this row's state like this: e.Row.RowState == DataControlRowState .Edit this worked fine with rows No 1, 3, 5... (non-alternating rows), however...