DataGridでテンプレート列を利用して、行単位で編集できるようにしています。
そのEditItemTemplateの中にあるテキストボックスはUpdateCommandイベント内では
TextBox テキストボックス = (TextBox)e.Item.FindControl("テキストボックス");
という感じで取得できるのですが、EditCommandイベントや、PreRenderイベントの中では存在しないので取得できないように思えます。
ただ、こういった感じで取得が可能です。
TextBox テキストボックス = (TextBox)this.DataGrid.Items[0].Cells[2].FindControl("テキストボックス");
ここまで出来れば後は編集しようとした手前で、その行の条件次第で編集させる項目を出し入れしてやればOK