ASP.Net UpdatePanel ImageButton cause “di questo._postbackSettings.async è nullo o non è un oggetto”

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

Domanda

Ricevo questo errore su un pannello di aggiornamento all'interno di un popupControlExtender che è all'interno di un dragPanelExtender.

Vedo che un sacco di altre persone hanno questo problema e sono varie correzioni nessuno dei quali hanno lavorato per me.

Mi piacerebbe sentire una spiegazione logica del perché questo è in corso, e un modo infallibile per evitare tali problemi in futuro.

Ho scoperto che, come altri sostengono che questo errore non si verifica quando il grilletto è un LinkButton, piuttosto che un ImageButton, ancora chiedendo se qualcuno ha una spiegazione.

È stato utile?

Soluzione

La mia ipotesi migliore è che UpdatePanel non è in grado di scrivere fuori il costume "async" proprietà per la richiesta di postback correttamente.Questo è probabilmente dovuto al blocco da uno dei controlli a confezione (la mia sensazione è che è il popupControlExtender - si tende ad avere un comportamento strano con updatepanel, in quanto è destinata a gestire gli eventi all'interno di essa per mostrare/nascondere fini).

Vorrei raccomandare a rimuovere il updatepanel e rotolare il vostro proprio soluzione per il vostro business specifico necessario per averlo, o di attuazione il tuo popup script (probabilmente un po ' più facile da scrivere).

Tra l'altro, per un po ' di sfondo, il "questo._postbackSettings.async" è il tuo AJAX.NET quadro cercando di capire se questa è una chiamata asincrona o non.Si potrebbe essere in grado di superare, attraverso la creazione di questo programaticly prima il postback viene inviato cattura il postback evento e aggiungere il campo per la richiesta di postback se non c'è già).

Solo alcuni pensieri...non credo ci sia un "plug and play" risposta per questo!

Altri suggerimenti

Ho avuto lo stesso problema e non ho trovato alcuna soluzione soddisfacente fino a quando ho finito sul http://siderite.blogspot.com/2009/02/thispostbacksettingsasync-is-null-or.html che fa esattamente quello che voglio.

Proprio per evitare problemi con eventuali link morti, in futuro, ecco il codice:

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);

In caso di presentare senza il _postBackSettings essere impostato li crea, causando il riferimento null eccezione di scomparire come _postBackSettings.async è quindi disponibile.

Spero che questo aiuta,

G.

Impostazione "EnablePartialRendering" false sul controllo ScriptManager impedisce l'errore, ma non è una soluzione ottimale.Perdere il beneficio di rendering parziale potrebbe essere un grande affare, a seconda della vostra applicazione.

Solo per la cronaca, io non l'avrei fatto esattamente lo stesso come le altre persone che hanno visto l'errore.Ho un PopupControlExtender, in cui è una checkboxlist.Ho aggiunto un "seleziona tutto" il collegamento con un metodo javascript a livello di programmazione di selezionare/deselezionare tutti.Io non sto usando un Imagebutton.Non ho visto l'errore prima di aggiungere il codice javascript e ora, anche dopo la rimozione l'errore rimane.Ci deve essere un altro cambiamento che mi manca.

Spero che questo aiuta qualcuno...

- Matt

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top