2010-12-13 64 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" 

到電網。

行緩存是造成視圖狀態錯誤的行緩存。