powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Удаление записи из GridView?
4 сообщений из 4, страница 1 из 1
Удаление записи из GridView?
    #33889291
Kroket
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На WEB - форме есть GridView.

Стандартную колонку DeleteCommand в этом гриде не использую, создал свое поле с ComandName = "DelRec".

На стринице такой код:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
    Protected Sub gd_RowCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs) Handles gd.RowCommand

        If e.CommandName = "DelRec" Then

            gd.SelectedIndex = e.CommandArgument

            Dim da As New OracleDataAdapter()
            da.DeleteCommand = CreateDeleteCommand() ' здесь привязка к ХП, котоая удаляет'
            Dim tbl As DataTable = Session("ds").Tables("tb")
            Dim row As DataRow

            row = tbl.Rows(e.CommandArgument)

            row.Delete()
            da.Update(tbl)
            Call OpenTable() ' это моя процедура заново открывает таблицу и привязывает ее к гриду'

        End If
    End Sub

Если встать на первую запись или в середине где-нибудь то нормально все записи удаляет подряд по клику кнопки.

Если встать на последнюю запись, то ведет себя по разному.
То удаляет одну и ошибка, то несколько и ошибка, то вообще не удаляет.

Ошибка такая:
"Позиция N не является строкой", где N номер последней записи.
В чем проблема?
...
Рейтинг: 0 / 0
Удаление записи из GridView?
    #33889342
Stepochkin R
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
gd.SelectedIndex = e.CommandArgument
Когда ты удаляешь последнюю запись у тебя получается OutOfRange
Добавь
Код: plaintext
1.
gd.SelectedIndex = - 1 
перед
Код: plaintext
1.
Call OpenTable()
...
Рейтинг: 0 / 0
Удаление записи из GridView?
    #33890028
Kroket
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
К сожалению не помогло :(

Ошибку вызывает эта строка:

Код: plaintext
1.
row = tbl.Rows(e.CommandArgument)

There is no row at position 3.

Прогоняю через отладчик, ну есть же строка с таким номером.

Что-то не догоняю
...
Рейтинг: 0 / 0
Удаление записи из GridView?
    #33890151
Kroket
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все нашел.

Действительно проблема с SelectIndex.

Проблема в том, что в OpenTable() осуществляется повторное открытие таблицы и ее привязка к GridView. В этот момент снова происходит событие gd_RowCommand и она второй раз вызывается. И указатель записи пытается на уже удаленную строку поставить.

Спасибо за помощь.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Удаление записи из GridView?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]