ASP.Net UpdatePanel ImageButton verursacht „this._postbackSettings.async ist null oder kein Objekt“

StackOverflow https://stackoverflow.com/questions/57586

Frage

Ich erhalte diesen Fehler in einem Update-Panel in einem PopupControlExtender, der sich in einem DragPanelExtender befindet.

Ich sehe, dass viele andere Leute dieses Problem haben und verschiedene Lösungen haben, von denen keine für mich funktioniert hat.

Ich würde gerne eine logische Erklärung dafür hören, warum dies geschieht, und einen narrensicheren Weg, solche Probleme in Zukunft zu vermeiden.

Ich habe festgestellt, dass dieser Fehler, wie auch andere behaupten, nicht auftritt, wenn der Auslöser ein LinkButton und nicht ein ImageButton ist. Ich frage mich immer noch, ob jemand eine Erklärung hat.

War es hilfreich?

Lösung

Meine beste Vermutung ist, dass die Update nicht in der Lage ist, richtig die benutzerdefinierten „async“ Eigenschaft auf die Postbacks Anfrage zu schreiben. Dies ist wahrscheinlich auf Grund von einer der Kontrollen zu blockieren Einwickeln es (mein Bauchgefühl ist, dass es die popupControlExtender ist - es neigt dazu, mit Update merkwürdiges Verhalten zu haben, wie es beabsichtigt ist, die Ereignisse im Inneren zu verwalten für sie zeigen / verstecken Zwecke ist).

Ich würde empfehlen, entweder die Update entfernen und Ihre eigene Lösung für Ihre spezifische Geschäftsanforderungen rollen für sie dabei zu haben, oder Ihre eigene Popup-Skript Umsetzung (wahrscheinlich etwas einfacher zu schreiben).

Im übrigen für einige Hintergrundinformationen, die „this._postbackSettings.async“ ist Ihr AJAX.NET Rahmen, ob dies ist ein asynchroner Aufruf, um herauszufinden, oder nicht. Sie könnten in der Lage sein, es zu überwinden, indem diese programaticly Einstellung vor der Postbacks gesendet wird (das Postback Ereignis fangen und das Feld der Postback Anforderung hinzufügen, wenn es nicht bereits vorhanden ist).

Nur ein paar Gedanken ... Ich glaube nicht, dass es ein „Plug and Play“ Lösung für diese!

Andere Tipps

Ich habe das gleiche Problem habe und habe festgestellt, nicht wirklich eine befriedigende Lösung, bis ich auf http://siderite.blogspot.com/2009/02/thispostbacksettingsasync-is-null-or.html , die genau das tut, was ich will.

Nur Probleme mit möglichen toten Links in der Zukunft zu vermeiden hier ist der Code:

var script = @"
if (Sys &&
    Sys.WebForms && Sys.WebForms.PageRequestManager &&
    Sys.WebForms.PageRequestManager.getInstance) 
{
    var prm = Sys.WebForms.PageRequestManager.getInstance();
    if (prm &&
       !prm._postBackSettings)
    {
        prm._postBackSettings = prm._createPostBackSettings(false, null, null);
    }";

ScriptManager.RegisterOnSubmitStatement(
    Page, 
    Page.GetType(), 
    "FixPopupFormSubmit", 
    script);

Im Fall eines einreichen, ohne dass der _postBackSettings gesetzt wird es schafft sie, was die Nullreferenz Ausnahme verschwinden als _postBackSettings.async dann verfügbar ist.

Hope, das hilft,

G.

settign „EnablePartialRendering“ false auf der Scriptsteuerung verhindert, dass der Fehler, aber es ist keine optimale Lösung. den Vorteil der Teilwiedergabe verlieren könnte eine große Sache sein, je nach Anwendung.

Nur für das Protokoll, ich tat nicht genau das gleiche wie andere Leute, die den Fehler gesehen. Ich habe einen PopupControlExtender, in dem ein Checkboxlist ist. Ich habe einen „Alle wählen“ Link mit einer Javascript-Methode, um programmatisch zu aktivieren / deaktivieren alle. Ich bin ein Image nicht verwenden. Ich habe den Fehler nicht, bevor die Javascript Hinzufügen und jetzt auch nach bleibt es der Fehler zu entfernen. Es hat eine weitere Änderung sein, ich bin fehlt.

Ich hoffe, das jemand hilft ...

- Matt

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top