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>
Foi útil?

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>");
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top