Devexpress grid - PerformCallback генерирует неверное состояние просмотра - PullRequest
4 голосов
/ 13 декабря 2010

У меня есть сетка DevExpress, которую нужно обновлять каждый раз при изменении значения в выпадающем списке. Например, у меня есть поле со списком, который устанавливает размер страницы сетки. Одним из требований является то, что комбинированный список не вызывает полную обратную передачу.

Combobox объявлен так:

    <asp:DropDownList ID="cboPages" AutoPostBack="false" runat="server" 
EnableViewState="false" OnSelectedIndexChanged="cboPages_SelectedIndexChanged" />

При изменении выбранного индекса он устанавливает файл cookie, значением которого является выбранное значение. Когда значение комбинированного списка изменяется, вызывается функция javascript:

function PerformCallbackOnGrid(grid) {
    try {
        grid.PerformCallback("refresh");
    }
    catch(err){
        alert('Could not perform callback on grid.');
    }
}

Функция прикреплена в коде:

this.cboPages.Attributes["onChange"] = "PerformCallbackOnGrid(" + this.GridClientID + ")";

После выполнения этих шагов:

  1. Пользователь изменяет размер страницы сетки с помощью выпадающего списка, поэтому PerformCallback вызывается как минимум один раз.
  2. Пользователь нажимает F5 (обновление).
  3. Пользователь снова пытается изменить размер страницы.

Появляется сообщение об ошибке «Неверное состояние просмотра».

Я попытался установить для ViewStateMode значение Disabled для сетки, также EnableViewState = "false".

1 Ответ

3 голосов
/ 16 декабря 2010

выяснил это сам! Видимо было достаточно установить

EnableViewState="false" EnableRowsCache="false"

к сетке.

Кэш строк был причиной ошибки viewstate.

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