2013-05-31 47 views
0

我使用的GridView表示在asp.net的数据,我的代码中,我发现的GridView超出范围的例外

dt.Rows[row.DataItemIndex]["Sunday"]=((TextBox(row.Cells[4].Controls[0])).Text; 

out of range exception

我认为(控制)中的问题,但我不知道如何解决它,所以你能帮我吗?

+0

您是否调试过并确保您尝试获取的所有索引实际存在?它的绑定是在你的数据网格或文本框中。 – Andrew

+0

所以你的一个数组包含较少的项目,然后你认为。在调试器中检查它。这是我们唯一可以用这个代码字符串来说的。 – Tommi

+0

尝试使用调试模式.. 这意味着您的某些对象正在尝试引用“超出范围”的索引 – Ryba

回答

0

您需要检查您尝试访问索引元素的东西的集合是否实际上至少包含预期的项目数。您可以通过检查LengthCount属性(取决于类型,例如数组或列表)来执行此操作。

这个错误可能会在您使用access-by-index的任何地方引发,因此请谨慎使用这些错误中的每一个。然后你可以根据你所知道的做些事情,比如询问用户输入有效的信息等。

+0

我检查了它,发现它为零。也许是因为我动态地使用表填充gridview。所以在这种情况下如何读取新值。 – user2211482

0

试着检查你的行有多少个单元格。计数是从零开始的,所以如果你想获得对细胞#4的控制,则需要通过1减去它,所以:

((TextBox(row.Cells[3].Controls[0])).Text; 

还要检查,如果你有对电池的控制。

+0

如何检查我是否对这个单元格有控制权? – user2211482

+0

我检查了它,发现它为零。也许是因为我动态地使用表填充gridview。 – user2211482