Индекс находился вне допустимого диапазона
Мой код выглядит следующим образом
private void SaveCheckedValues() { System.Collections.ArrayList userdetails = new System.Collections.ArrayList(); int index = -1; foreach (GridViewRow gvrow in grdRpt.Rows) { object o = grdRpt.DataKeys[gvrow.RowIndex].Value; index = (int)0; bool result = ((CheckBox)gvrow.FindControl("chkselecdata")).Checked; // Check in the Session if (Session["CHECKED_ITEMS"] != null) userdetails = (System.Collections.ArrayList)Session["CHECKED_ITEMS"]; if (result) { if (!userdetails.Contains(index)) userdetails.Add(index); } else userdetails.Remove(index); } if (userdetails != null && userdetails.Count > 0) Session["CHECKED_ITEMS"] = userdetails; }
когда я запускаю приведенный выше код показывает ошибку следующим образом
индекс был вне досягаемости.
Должно быть неотрицательным и меньше размера имени параметра коллекции 'Index'
Ошибка отображается в следующей строке следующим образом
объект o = grdRpt.DataKeys[gvrow.Параметр rowindex].Значение;
В gridview значения выглядят следующим образом
transacteeid totalprice Qty Isactive 109453628727 25 1 1 109453628727 15 2 1 565676778 8 3 1
Когда я отлаживаю и проверяю значение, я получаю значение как "109453628727"
как решить эту ошибку. в чем же ошибка в моем вышеприведенном коде?
Что я уже пробовал:
Мой код выглядит следующим образом
частный недействительными SaveCheckedValues()
{
Система.Коллекции.ArrayList userdetails = новая система.Коллекции.список ArrayList();
индекс int = -1;
по каждому элементу (gvrow GridViewRow в grdRpt.Строк)
{
объект o = grdRpt.DataKeys[gvrow.Параметр rowindex].Значение;
индекс = (int)0;
bool result = ((CheckBox)gvrow.FindControl("chkselecdata")).Проверен;
// Регистрация в сеансе
if (Session["CHECKED_ITEMS"] != null)
userdetails = (System.Коллекции.ArrayList)сессия["CHECKED_ITEMS"];
если (результат)
{
if (!userdetails.Содержит(индекс))
userdetails.Добавить(индекс);
}
еще
userdetails.Удалить(индекс);
}
if (userdetails != null && userdetails.Count > 0)
Session["CHECKED_ITEMS"] = userdetails;
}
когда я запускаю приведенный выше код показывает ошибку следующим образом
индекс был вне досягаемости.
Должно быть неотрицательным и меньше размера имени параметра коллекции 'Index'
Ошибка отображается в следующей строке следующим образом
объект o = grdRpt.DataKeys[gvrow.Параметр rowindex].Значение;
В gridview значения выглядят следующим образом
transacteeid totalprice кол-во метод isactive
109453628727 25 1 1
109453628727 15 2 1
565676778 8 3 1
Когда я отлаживаю и проверяю значение, я получаю значение как "109453628727"
как решить эту ошибку. в чем же ошибка в моем вышеприведенном коде?