2008-09-08 6 views
3

J'ai un problème étrange.__doPostBack ne rend pas en postback

Je dois utiliser GetPostBackEventRefence pour forcer une publication, mais cela fonctionne la première fois, après la première publication, la fonction .NET n'est pas rendue ... des idées?

C'est ce que je suis absent après la 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> 

Répondre

3

La première chose que je regarderais est de savoir si vous avez des contrôles asp (tels que linkbutton, comboboxes, qui ne génèrent pas normalement soumettre mais requre un postback) étant affiché sur la page. La fonction __doPostback ne sera mise dans la page que si ASP pense que l'un de vos contrôles l'exige.

Si vous n'utilisez pas un de ceux que vous pouvez utiliser:

Page.ClientScript.GetPostBackClientHyperlink(controlName, "") 

pour ajouter la fonction à votre page

+0

Le problème est que la première fois (pas de publication) il rend correctement. .. c'est la même page – juan

+0

Peut-être que vous cachez linkbutton sur la publication? –

4

Eh bien, après cette idée, je créé une fonction fictive avec le postbackreference, et cela fonctionne ... il est encore étrange, car il rend correctement la première fois

this.Page.RegisterClientScriptBlock("DUMMY", "<script language='javascript'>function dummy() { " + this.Page.GetPostBackEventReference(this) + "; } </script>"); 
Questions connexes