C# 索引超出范围,但为什么?
我有一个gridview,上面有一个C# 索引超出范围,但为什么?,c#,asp.net,C#,Asp.net,我有一个gridview,上面有一个SelectedIndexChanged事件 protected void GridView1_SelectedIndexChanged(object sender, EventArgs e) { GridViewRow Row = GridView1.SelectedRow; //do some stuff } 然后我得到一个错误 索引超出范围。必须为非负数且小于集合的大小。 参数名称:索引 我不明白为什么Gridview被绑定在page
SelectedIndexChanged
事件
protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
{
GridViewRow Row = GridView1.SelectedRow;
//do some stuff
}
然后我得到一个错误
索引超出范围。必须为非负数且小于集合的大小。
参数名称:索引
我不明白为什么Gridview被绑定在pageload中。但不是在邮政回来
if (!IsPostBack)
{
GridView1.DataSource = UserAccounts;
GridView1.DataBind();
}
asp.net
数据源
控件会自动为您处理此问题,但如果您手动绑定GridView
,则还需要在回发
时绑定它。如果您根据过滤器等对数据源进行更改,则需要重新绑定。asp.net数据源
控件会自动为您处理此操作,但如果您手动绑定GridView
,则还需要在回发
时对其进行绑定。如果您根据过滤器等对数据源进行更改,则需要重新绑定它。第一件事:回发到服务器时,您的GridView1将重新初始化,以便GridView1.DataSource将丢失以前的数据
if (!IsPostBack)
{
GridView1.DataSource = UserAccounts;
GridView1.DataBind();
}
第二件事:如果手动将GridView与自定义DataTable绑定,请列出。。。。您必须使用特定的数据键实现RowCommand
请看这篇文章第一件事:回发到服务器时,您的GridView1将重新初始化,这样GridView1.DataSource将丢失以前的数据
if (!IsPostBack)
{
GridView1.DataSource = UserAccounts;
GridView1.DataBind();
}
第二件事:如果手动将GridView与自定义DataTable绑定,请列出。。。。您必须使用特定的数据键实现RowCommand
请看一看这篇文章您确定该行出现了错误吗?您是否忘记添加一些内容?您从哪里获得
索引自动失效异常
?您是否在//做一些事情
?而且您没有提到错误的抛出位置。.使用SelectedRow
,与从Rows
集合(GridView1.Rows[GridView1.SelectedIndex]
中检索SelectedIndex
属性指定的索引处的GridViewRow
对象相同。如果未选择任何行,则SelectedIndex
为-1,这将引发异常。那么,您是否已调试以查看是否存在项以及索引是否大于-1?Microsoft说SelectedRow
与GridView1.Rows[GridView1.SelectedIndex]
相同,但这并不完全正确。使用反编译器并查看SelectedRow
和SelectedIndex
表明,如果SelectedRow为-1,则返回的对象为null
SelectedRow
永远不会抛出异常,SelectedIndex也不会抛出异常(除非将SelectedIndex
设置为值<-1,在这种情况下,它将抛出ArgumentOutOfRangeException
)。异常必须发生在另一行上。您确定在该行上引发了错误吗?您是否忘记添加一些内容?您从哪里获得索引自动失效异常
?您是否在//做一些事情
?而且您没有提到错误的抛出位置。.使用SelectedRow
,与从Rows
集合(GridView1.Rows[GridView1.SelectedIndex]
中检索SelectedIndex
属性指定的索引处的GridViewRow
对象相同。如果未选择任何行,则SelectedIndex
为-1,这将引发异常。那么,您是否已调试以查看是否存在项以及索引是否大于-1?Microsoft说SelectedRow
与GridView1.Rows[GridView1.SelectedIndex]
相同,但这并不完全正确。使用反编译器并查看SelectedRow
和SelectedIndex
表明,如果SelectedRow为-1,则返回的对象为null
SelectedRow
永远不会抛出异常,SelectedIndex也不会抛出异常(除非将SelectedIndex
设置为值<-1,在这种情况下,它将抛出ArgumentOutOfRangeException
)。异常必须发生在不同的行上。我也尝试过在postpage上绑定,但仍然出现错误:(我也尝试过在postpage上绑定,但仍然出现错误:(检查回帖子,帮助。检查回帖子,帮助)。