Событие GridView_RowCommand снова запускается при обновлении страницы

Я реализовал функцию редактирования строк GridView в своем приложении .net, используя <asp:CommandField. Я нажал кнопку «Обновить», чтобы сохранить запись после редактирования строки. Теперь, если я обновляю страницу или нажимаю F5, GridView_RowCommand запускается снова.

Как мы можем этого избежать. Есть ли какой-либо механизм для определения, когда пользователь нажимает F5 ИЛИ обновляет страницу. Есть ли какой-либо метод на стороне клиента или на стороне сервера.


person Sukhjeevan    schedule 28.01.2011    source источник


Ответы (3)


Не совсем лучшее «техническое» решение вашей проблемы, но вы всегда можете просто сделать Response.Redirect(Request.RawUrl), как только закончите делать все, что вам нужно, в своей RowCommand.

Как я уже сказал, это не лучшее "техническое" решение, но это решение.

Дэйв

person Dave    schedule 09.02.2011
comment
Спасибо, Дэйв. Это решение действительно сработало для меня. Это будет примерно так, если я напишу в RowCommand [Me.Page.ClientScript.RegisterStartupScript (Me.GetType (), k, window.location.href = window.location.href, True )], т.е. после того, как код RowCommand будет выполнен, когда мы обновим страницу, процесс asp.net рассматривает его как запрос GET, поэтому при обновлении не открывается всплывающее окно с просьбой повторить попытку или отменить. Ну, это решение сработало в моем случае. Большое спасибо. - person Sukhjeevan; 09.02.2011
comment
Это почти то же самое, но достигается с помощью вашего JavaScript - рад, что это сработало для вас :) - person Dave; 09.02.2011

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

person Joel Etherton    schedule 28.01.2011

person    schedule
comment
я получил IsPostback = true, когда я нажимаю кнопку «Обновить», а также при обновлении страницы. - person Sukhjeevan; 28.01.2011
comment
когда я обновляю страницу, я получаю Ispostback = true и снова сохраняю данные, которые я уже сохранил при нажатии кнопки обновления. - person Sukhjeevan; 28.01.2011
comment
Сохраните объект в сеансе со значениями, которые вы вставили последними, и проверьте, совпадает ли он с последними вставленными значениями. Если так, просто вернитесь. Редактирую свой ответ. - person Pabuc; 28.01.2011