Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# e、 Row.RowIndex引发参数超出范围异常_C#_Asp.net_Gridview_Sqldatasource - Fatal编程技术网

C# e、 Row.RowIndex引发参数超出范围异常

C# e、 Row.RowIndex引发参数超出范围异常,c#,asp.net,gridview,sqldatasource,C#,Asp.net,Gridview,Sqldatasource,这对我来说没有意义:如果我运行以下代码: protected void viewStoryTime_OnRowDataBound(Object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { var obj = ((DataRowView)e.Row.DataItem)["ActivityDate"]; if (DateTime

这对我来说没有意义:如果我运行以下代码:

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);
        }
    }
}
现在,如果我尝试使用此选项清除单元格:

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();
        }
    }
}
但是,如果我输入3,它将从列中删除控件,该控件应位于该列之前:


为什么我会遇到此异常以及我能做些什么?

根据您所做的一切尝试,获得此异常的唯一方法是
e.Row.RowIndex
超出范围:

viewStoryTime.Rows[e.Row.RowIndex]...
然而,我不清楚你为什么不这么做:

e.Row.Cells[3].Controls.Clear();

根据页面在事件生命周期中的位置,访问
viewStoryTime
上的行时可能会遇到问题。

根据您所尝试的一切,获得此异常的唯一方法是
e.Row.RowIndex
超出范围:

viewStoryTime.Rows[e.Row.RowIndex]...
然而,我不清楚你为什么不这么做:

e.Row.Cells[3].Controls.Clear();

根据页面在事件生命周期中的位置,访问
viewStoryTime
上的行时可能会出现问题。

如果这样做会发生什么
e.Row.Cells[3]。Controls.Clear()这是一个参数异常,而不是索引超出范围异常。
viewStoryTime.Rows[e.Row.RowIndex].Cells[3]
viewStoryTime.Rows[e.Row.RowIndex].Cells[3]的值是多少。控件
?你能提供堆栈跟踪吗?另外,我看不出你在哪里“手动输入4”。你确定你的行中至少有4个单元格吗?(否则,单元格[3]将生成ArgumentOutOfRangeException)如果这样做会发生什么
e.Row.Cells[3]。Controls.Clear()这是一个参数异常,而不是索引超出范围异常。
viewStoryTime.Rows[e.Row.RowIndex].Cells[3]
viewStoryTime.Rows[e.Row.RowIndex].Cells[3]的值是多少。控件
?你能提供堆栈跟踪吗?另外,我看不出你在哪里“手动输入4”。你确定你的行中至少有4个单元格吗?(否则,单元格[3]将生成ArgumentOutOfRangeException)