これは私には意味がありません:このコードを実行すると:
protected void viewStoryTime_OnRowDataBound(Object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
var obj = ((DataRowView)e.Row.DataItem)["ActivityDate"];
if (DateTime.Parse(obj.ToString()) < DateTime.Now.StartOfWeek(DayOfWeek.Monday))
{
System.Diagnostics.Debug.WriteLine(e.Row.RowIndex);
}
}
}
私の出力は次のとおりです。
4
これを使用してセルをクリアしようとすると、次のようになります。
protected void viewStoryTime_OnRowDataBound(Object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
var obj = ((DataRowView)e.Row.DataItem)["ActivityDate"];
if (DateTime.Parse(obj.ToString()) < DateTime.Now.StartOfWeek(DayOfWeek.Monday))
{
viewStoryTime.Rows[e.Row.RowIndex].Cells[3].Controls.Clear();
}
}
}
私は得る:
タイプ 'System.ArgumentOutOfRangeException' の初回例外が mscorlib.dll で発生しました
さらに、手動で 4 を入力すると、次の例外が発生します。
viewStoryTime.Rows[e.Row.RowIndex].Cells[3].Controls.Clear();
ただし、3を入力すると、必要な列の直前の列からコントロールが削除されます。
この例外が発生するのはなぜですか? また、どうすればよいですか?