2016-08-03 30 views
0

Haben Sie Probleme in der QA-Umgebung. Wenn wir auf eine Komponente klicken, die den OnClick-Ereignisserver enthält, machen Sie nichts. Es lädt nur die Seite neu und hebt kein Postback an. Aber wenn Sie etwa 50-60 Sekunden nach dem Laden der Seite warten und auf eine Komponente klicken, erhalten Sie einen Fehler. "Ungültiges Postback- oder Callback-Argument." Wenn Sie in webconfig enableEventValidation = "false" verwenden, erhalten Sie nach 50-60 Sekunden keinen Fehler. Es wird ein Postback ausgelöst und die Methode wird aufgerufen.Asp.net webforms onclick nicht feuern auf qa Umgebungen

All dieser Code funktioniert ordnungsgemäß auf meinem lokalen Computer und auf dem Dev-Server.

Server-Methode:

protected void lbHit_OnClick(object sender, EventArgs e) 
{ 
    System.Web.HttpContext.Current.Response.Redirect(this.url); 
} 

MarkUp:

<asp:LinkButton runat="server" ID="lbHit" CausesValidation="False" OnClick="lbHit_OnClick" > 
<sdk:PictureFillItem DisableWebEditing="true" runat="server" Field="Image" ID="UIImage2" ImageFormat="picture_box" CssClass="img-responsive" /> 
    <p > 
     <sc:Text runat="server" id="UICaption2" Field="Caption" /> 
     <span class="gicon chevron-right"></span> 
    </p> 
</asp:LinkButton>  

Ich habe eine Menge Dinge versucht, es zu beheben:

  • Entdecken Protokolle, Netzwerk, Konsole (keine verbundenen Fehler mit unserem Problem);
  • Vergleichen einer Konfiguration von IIS und Lösung (scheint fast gleichen);
  • Implementieren Sie eine komplett neue Komponente (gleiches Verhalten);
  • Lösung auf neue Website verschieben (gleiches Verhalten);
  • Erstellen Sie eine neue Website und neue einfache Lösung mit nur einer Schaltfläche (funktioniert in Ordnung);

Und viele andere Sachen ....

+0

können Sie versuchen, den Cache mit hostname/sitecore/admin/cache.aspx zu löschen. Ich nehme an, dass Ihre Komponente zwischengespeichert ist und Ihr Klickereignis nicht ausgelöst wird. –

+0

danke für die antwort. Reinigung Cashe hilft nicht. – kabzit13

Antwort

2

Stellen Sie sicher, dass das Sitecore-HTML-Caching für diese Seite oder Komponente nicht aktiviert ist. HTML-Caching ist nicht mit PostBack kompatibel.

+0

Danke für die Antwort. Aber Cache-Reinigung hilft nicht. Also habe ich festgestellt, dass es kein Problem mit einem Cache ist. Aber ich werde versuchen, den Cache für Komponenten und Seiten zu deaktivieren, sobald ich dazu in der Lage bin. – kabzit13

+0

Das Problem besteht darin, dass die Seite beim ersten Laden zwischengespeichert wird. Daher wird der Codebehind bei nachfolgenden Ladevorgängen nie ausgeführt. Die einzige Möglichkeit, mit der ein Cache gelöscht werden könnte, wäre, wenn Sie die Seite geladen, den Cache geleert und dann auf die Schaltfläche geklickt haben, ohne sie erneut zu laden. – techphoria414

+0

Nachdem ich gelöscht habe und ohne die Seite neu zu laden, klicken Sie auf die Schaltfläche Ich bekomme "Ungültiges Postback oder Callback Argument. Event Validierung ist aktiviert mit in der Konfiguration oder <% @ Page EnableEventValidation =" true "% > auf einer Seite. " Vielleicht können Sie dies verhindern und dieses Zwischenspeichern deaktivieren. Entschuldigung für diese Fragen, ich bin neu in Sitecore. – kabzit13