views:

1219

answers:

3

I'm having a strange problem.

I have to use GetPostBackEventRefence to force a Postback, but it works the first time, after the first postback, the .NET function is not rendered... any ideas?

This is what I'm missing after the 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>
+1  A: 

The first thing I would look at is whether you have any asp controls (such as linkbutton, comboboxes,that don't normally generate a submit but requre a postback) being displayed on the page. The __doPostback function will only be put into the page if ASP thinks that one of your controls requires it.

If you aren't using one of those you can use:

Page.ClientScript.GetPostBackClientHyperlink(controlName, "")

to add the function to your page

Haydar
A: 

@Haydar The problem is that the first time (Not postback) it renders correctly... it's the same page

Juan Manuel
Maybe you hide linkbutton on postback?
Pavel Chuchuva
+2  A: 

Well, following that idea I created a dummy function with the postbackreference, and it works... it still is weird though, because of it rendering correctly the first time

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