__doPostBack non esegue il rendering nel postback
-
09-06-2019 - |
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>
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>");