Domanda

Sto riscontrando uno strano problema.

devo usare GetPostBackEventRefence per forzare un Postback, ma funziona la prima volta, dopo il primo postback, la funzione .NET non viene renderizzata...qualche idea?

Questo è quello che mi manca dopo il postback:

<script language="javascript" type="text/javascript">
<!--
function __doPostBack(eventTarget, eventArgument) {
    var theform;
    if (window.navigator.appName.toLowerCase().indexOf("microsoft") > -1) {
        theform = document.Main;
    }
    else {
        theform = document.forms["Main"];
    }
    theform.__EVENTTARGET.value = eventTarget.split("$").join(":");
    theform.__EVENTARGUMENT.value = eventArgument;
    theform.submit();
}
// -->
</script>
È stato utile?

Soluzione

La prima cosa che esaminerei è se sono presenti controlli ASP (come pulsanti di collegamento, caselle combinate, che normalmente non generano un invio ma richiedono un postback) visualizzati sulla pagina.La funzione __doPostback verrà inserita nella pagina solo se ASP ritiene che uno dei tuoi controlli lo richieda.

Se non stai utilizzando uno di questi puoi utilizzare:

Page.ClientScript.GetPostBackClientHyperlink(controlName, "")

per aggiungere la funzione alla tua pagina

Altri suggerimenti

Bene, seguendo quell'idea ho creato una funzione fittizia con postbackreference e funziona...è comunque strano, perché viene visualizzato correttamente la prima volta

this.Page.RegisterClientScriptBlock("DUMMY", "<script language='javascript'>function dummy() { " + this.Page.GetPostBackEventReference(this) + "; } </script>");
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top