2013-05-31 45 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