2010-12-13 5 views
4

Ich habe ein DevExpress-Raster, das jedes Mal aktualisiert werden muss, wenn der Wert in einer Combobox geändert wird. Zum Beispiel habe ich eine Combobox, die die Seitengröße des Rasters festlegt. Eine der Voraussetzungen ist, dass die Combobox keinen vollständigen Postback verursacht.Raster dekomprimieren - PerformCallback generiert ungültigen Viewstate

Die Combobox wird wie folgt erklärt:

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

Auf ausgewählten Index geändert wird, setzt er ein Cookie, dessen Wert der ausgewählte Wert. Wenn der Combobox Wert ändert, wird eine Javascript-Funktion genannt:

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

Die Funktion im Code hinter angebracht ist:

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

Nachdem diese Schritte durchführen:

  1. Der Benutzer ändert das Gitter Seitengröße mit der Combobox, so dass PerformCallback mindestens einmal aufgerufen wird.
  2. Der Benutzer drückt F5 (Aktualisieren).
  3. Der Benutzer versucht, die Seitengröße erneut zu ändern.

Die Fehlermeldung 'Ungültiger Viewstate' wird angezeigt.

Ich habe versucht, ViewStateMode für das Raster deaktiviert zu deaktivieren, auch EnableViewState = "false".

Antwort

3

Ich habe es selbst gemacht! Anscheinend war es genug,

EnableViewState="false" EnableRowsCache="false" 

zum Grid zu setzen.

Zeilencache war derjenige, der den Viewstatusfehler verursachte.