2010-12-13 70 views
4

我有一个DevExpress网格需要刷新每次更改组合框中的值。例如,我有一个组合框设置网格的页面大小。其中一个要求是组合框不会导致完整的回发。Devexpress网格 - PerformCallback生成无效的视图状态

组合框声明如下:

<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.'); 
    } 
} 

的功能被安装在后面的代码:

  1. 用户改变网格:

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

    执行这些步骤后页面大小使用组合框,因此PerformCallback至少调用一次。

  2. 用户按下F5(刷新)。
  3. 用户尝试再次更改页面大小。

出现'无效视图状态'错误消息。

我已经尝试将ViewStateMode设置为禁用网格,也EnableViewState =“false”。

回答

3

拼图出来吧!显然它已经足够设置

EnableViewState="false" EnableRowsCache="false" 

到电网。

行缓存是造成视图状态错误的行缓存。