__doPostBack não é renderizado no postback
-
09-06-2019 - |
Pergunta
Estou tendo um problema estranho.
eu tenho que usar GetPostBackEventRefence
para forçar um Postback, mas funciona na primeira vez, após o primeiro postback, a função .NET não é renderizada...alguma ideia?
Isto é o que estou perdendo após o 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>
Solução
A primeira coisa que eu verificaria é se você tem algum controle asp (como linkbutton, comboboxes, que normalmente não geram um envio, mas exigem um postback) sendo exibido na página.A função __doPostback só será colocada na página se o ASP achar que um de seus controles exige isso.
Se você não estiver usando um desses, você pode usar:
Page.ClientScript.GetPostBackClientHyperlink(controlName, "")
para adicionar a função à sua página
Outras dicas
Bom, seguindo essa ideia criei uma função fictícia com postbackreference, e funciona...ainda é estranho, porque foi renderizado corretamente na primeira vez
this.Page.RegisterClientScriptBlock("DUMMY", "<script language='javascript'>function dummy() { " + this.Page.GetPostBackEventReference(this) + "; } </script>");