2010-12-13 19 views
4

私は、コンボボックスの値が変更されるたびにリフレッシュする必要があるDevExpressグリッドを持っています。たとえば、グリッドのページサイズを設定するコンボボックスがあります。要件の1つは、コンボボックスが完全なポストバックを引き起こさないことです。Devexpressグリッド - PerformCallbackは無効なビューステートを生成します

コンボボックスは、次のように宣言される:選択されたインデックスが変更に

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

、それはその値が選択された値であるクッキーを設定します。コンボボックスの値の変更は、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. ユーザがグリッドを変更しますページサイズはコンボボックスを使用しているため、少なくとも1回はPerformCallbackが呼び出されます。
  2. ユーザーがF5(更新)を押します。
  3. ユーザーはページサイズを再度変更しようとします。

「無効なビューステート」というエラーメッセージが表示されます。

グリッドのViewStateModeを無効に設定しようとしましたが、EnableViewState = "false"です。

答えて

3

私自身がそれを図りました!明らかにそれを設定するだけで十分でした。

EnableViewState="false" EnableRowsCache="false" 

グリッドへ

行キャッシュはviewstateエラーの原因となっていました。

関連する問題