Question

I have a ASP.NET 1.1 application, and I'm trying to find out why when I change a ComboBox which value is used to fill another one (parent-child relation), two postbacks are produced.

I have checked and checked the code, and I can't find the cause.

Here are both call stacks which end in a page_load

First postback (generated by teh ComboBox's autopostback)

Postback call stack http://www.juanformoso.com.ar/images/callstack1.jpg

Second postback (this is what I want to find why it's happening)

alt text http://www.juanformoso.com.ar/images/callstack2.jpg

Any suggestion? What can I check?

Was it helpful?

Solution

It's a very specific problem with this code, I doubt it will be useful for someone else, but here it goes:

A check was added to the combo's onchange with an if, if the condition was met, an explicit call to the postback function was made. If the combo was set to AutoPostback, asp.net added the postback call again, producing the two postbacks...

The generated html was like this:

[select onchange="javascript: if (CustomFunction()){__doPostBack('name','')}; __doPostBack('name','')"]

OTHER TIPS

First thing I would look for is that you don't have the second ComboBox's AutoPostBack property set to true. If you change the value in the second combo with that property set true, I believe it will generate a postback on that control.

Do you have any code you could share? Double post backs plagued me so much in classic ASP back in the day that it was what finally prompted me to switch to .NET once and for all. Whenever I have problems like these for .NET, I go to every CONTROL and every PAGE element like load, init, prerender, click, SelectedIndexChanged, and the like and put a breakpoint.

Even if I don't have code there, I'll insert something like:

Dim i As Integer
i = 0

I am usually able to pinpoint some action that I wasn't expecting and fix as needed. I would suggest you do that here.

Good luck.

Check Request.Form["__EVENTTARGET"] to find the control initiating the postback - that may help you narrow it down.

Looking at the callstacks, and some Reflectoring (into ASP.NET 2 - I don't have 1.1 handy) - it looks like SessionStateModule.PollLockedSessionCallback is part of the HttpApplication startup routines. It may be possible that your app is being recycled - I'm pretty sure an event gets written into the Event log for that.

My only other suggestion would be Fiddler or something on the client to capture HTTP traffic.

This is very old post, but people still looking at this for solution exactly same as I did last week.

Like Grengby said Double events are primary reasons - but removing one of them is not allways an option. Atleast on my case and I had to resolve this on 3rd party's application.

I added following script and amended ASP form on masterpage:

<script>var Q = 0;</script>
<form id="Form1" runat="server" onsubmit="Q++; if(Q==1){return true;} else { return false;}">

This seems to be working and please forward your comments.

Arun

http://www.velocityreviews.com/forums/t117900-asp-net-multiple-postback-issue.html

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top