Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > ASP.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.01.2016, 06:23   #1
Lizi
Пользователь
 
Регистрация: 21.10.2013
Сообщений: 14
По умолчанию Запись в массив

Здравствуйте.
Есть GridView там состоит из 2-х столбцов. Первый - CheckBox, второй - значения ID. Мне нужно записать значения ID (тех полей которые отмечены галочкой) в массив и вывести в TextBox1.

Когда я запускаю выдается ошибка:
Индекс за пределами диапазона. Индекс должен быть положительным числом, а его размер не должен превышать размер коллекции. И показывает на строчку:
Код:
 
  a[i] = (int)GridView1.DataKeys[row.RowIndex].Value;
Фрагмент кода:
Код:
        protected void Button2_Click(object sender, EventArgs e)
        {
            foreach (GridViewRow row in GridView1.Rows)
            {
                CheckBox cb = (CheckBox)row.FindControl("chk");

                if (cb != null && cb.Checked)
                {
                    int i = 0;
                    int[] a = new int[10];

                    a[i] = (int)GridView1.DataKeys[row.RowIndex].Value;

                    i = i + 1;
                    TextBox1.Text += (a[i].ToString() + " ");
                }

            }
        }
От модератора
При вставке кода, используйте тэг кода(#), спасибо.

Последний раз редактировалось Lizi; 18.01.2016 в 17:13.
Lizi вне форума Ответить с цитированием
Старый 19.01.2016, 21:14   #2
Akeloya
Форумчанин
 
Регистрация: 27.01.2014
Сообщений: 115
По умолчанию

Для затравки
Код:
protected void Button2_Click(object sender, EventArgs e)
        {
            int[] a = new int[GridView1.Rows.Count];

            foreach (GridViewRow row in GridView1.Rows)
            {
                CheckBox cb = (CheckBox)row.FindControl("chk");

                if (cb != null && cb.Checked)
                {
                    a[row.RowIndex] = (int)GridView1.DataKeys[row.RowIndex].Value;

                    TextBox1.Text += (a[row.RowIndex].ToString() + " ");
                }

            }
        }
Но, думаю, это не поможет
Ибо у вас, скорее всего, GridView1.DataKeys пустой, если вы неправильно заполнили грид.
Akeloya вне форума Ответить с цитированием
Старый 08.02.2016, 18:28   #3
Lizi
Пользователь
 
Регистрация: 21.10.2013
Сообщений: 14
По умолчанию

Спасибо
Lizi вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
VBA Массив и запись Denton72 Microsoft Office Access 3 13.10.2015 19:56
Запись в двумерный массив Vova777 Общие вопросы Delphi 2 02.09.2011 20:57
массив типа запись Fufichek Помощь студентам 5 11.07.2011 21:44
Запись координат в массив в реал тайм, Как записать координаты в массив Dark19 Visual C++ 2 21.06.2011 18:45
Запись в массив SilAs Помощь студентам 1 22.02.2011 12:21