4

我有一个 DevExpress 网格,每次更改组合框中的值时都需要刷新它。例如,我有一个组合框来设置网格的页面大小。要求之一是组合框不会导致完整的回发。

组合框声明如下:

    <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"。

4

1 回答 1

3

自己想出来的!显然设置就足够了

EnableViewState="false" EnableRowsCache="false"

到网格。

行缓存是导致视图状态错误的原因。

于 2010-12-16T15:42:26.627 回答