Событие RowsDeleting не срабатывает - PullRequest
0 голосов
/ 10 апреля 2010

У меня есть сетка с переключателем onrowdeleting="SellersGridView_RowsDeleting". Мой метод:

protected void SellersGridView_RowsDeleting(object sender, GridViewDeleteEventArgs e)
    {
        string seller = ((Label)SellersGridView.Rows[e.RowIndex].Cells[0].FindControl("TextBoxSeller")).Text;
        BookStore b = new BookStore();
        b.LoadFromXML(Server.MapPath("list.xml"));
        string ISBN = Request.QueryString["ISBN"].ToString();
        int ID = b.BooksList.FindIndex(x => x.ISBN == ISBN);
        Book myBook = b.BooksList[ID];
        myBook.RemoveSeller(seller);

        Response.Redirect("editbook.aspx?ISBN=" + ISBN);
    }

Ну, кажется, что когда я пытаюсь что-то удалить - ничего не происходит. Я попытался изменить первую строку на Response.Redirect("foo"), просто чтобы проверить, происходит ли само событие, и оказывается, что это не так. Я не могу понять причину.

Вот мой элемент управления gridview: http://pastebin.com/CKDAMECT Вот мой код за кодом: http://pastebin.com/ShBtwGEu

Большое спасибо!

Ответы [ 5 ]

2 голосов
/ 15 апреля 2010

я нахожу Вероятно, у вас есть кнопка с идентификатором = «отправить», это приводит к ошибке в функции обратной отправки сообщения JavaScript theForm.submit (). Измените имя и постбэк триггера страницы.

0 голосов
/ 13 апреля 2010

Если ваша страница не публикуется назад, возможно, кнопка просмотра сетки вызывает проверку других элементов управления?Попробуйте изменить поле кнопки со столбцами шаблона и кнопку ссылки / изображения с причинной привязкой = false

0 голосов
/ 13 апреля 2010

После всех разговоров Я вижу, что форма не включает все элементы управления asp.net . Пожалуйста, исправьте это.

Также вы даете форме имя!, Только сервер ** run = ** и ** id = ** whatid. Возможно, имя заблокировало правильную отправку данных.

Во-вторых, если не отправлять ответные сообщения, то если проблема не в форме, то какой-то javascript останавливает ее от огня, может быть, это проверка (я так не думаю, но вы никогда не знаете).

Итак, проверьте форму для начала. - Должен включать все asp.net.

0 голосов
/ 13 апреля 2010

XML чувствителен к регистру. Так же и ASP.NET. Убедитесь, что ваши атрибуты правильно указаны.

Либо убедитесь, что свойство DataKey настроено правильно.

0 голосов
/ 10 апреля 2010

Из вашего кода Page_Load мне кажется, что вы привязываете данные к GridView только один раз - при первой загрузке страницы. Когда происходит обратная передача, сервер не запоминает строки в вашей сетке и не может запустить обработку события удаления.

Попробуйте переместить код

SellersGridView.DataSource = myBook.Sellers;
SellersGridView.DataBind();

из if (!IsPostback) секции. В этом случае вы будете каждый раз заполнять свою сетку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...