Содержимое GridView не обновляется при изменении базовых данных - PullRequest
2 голосов
/ 01 февраля 2012

Итак, у меня есть страница ASP.NET с двумя элементами управления:

  • a GridView, который отображает строки из SqlDataSource и в котором пользователь может выбрать строку;
  • a DetailsView, в котором пользователь может видеть и редактировать значения выбранной строки.

DetailsView может обновлять базовые данные, но даже при перезагрузке страницы GridView по-прежнему отображает старые данные, пока я вручную не перезагрузит страницу в браузере.

Как убедиться, что GridView отображает правильные данные после обновления в DetailsView?

P.S. Может быть важно отметить, что по причинам, изложенным в этом другом вопросе , мне пришлось использовать пользовательское событие OnItemUpdating с DetailsView. Это событие выполняет команду обновления SQL (успешно), устанавливает DetailsView обратно в режим ReadOnly (из режима редактирования) и затем отменяет событие (e.Cancel = true). Если отмена этого события также каким-то образом отменяет обновление GridView, как я могу вручную указать, чтобы оно само обновлялось?

PPS: я обнаружил этот похожий вопрос , но ответ не работает: он сбрасывает всю страницу обратно в исходное состояние, что означает, что GridView теряет выбранную строку и DetailsView исчезает. Я этого не хочу.

Ответы [ 2 ]

3 голосов
/ 01 февраля 2012

при загрузке страницы:

YourGridViewID.DataBind()
0 голосов
/ 01 февраля 2012

Если ваше OnItemUpdating событие генерирует обратную передачу

protected void Page_Load(object sender, EventArgs e)
{
    if (IsPostBack)
    {
        GridView.DataBind();//rebinding it with considering changes DetailView
    }
}

Если оно не работает, дайте мне знать.

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