Vra

Ek het 'n ASP.NET 1.1 aansoek, en ek probeer om uit te vind waarom wanneer ek 'n ComboBox watter waarde word gebruik om 'n ander een (ouer-kind verhouding) vul verander, twee postbacks geproduseer word.

Ek het nagegaan en gekontroleer die kode, en ek kan die oorsaak vind nie.

Hier is beide oproep stapels wat eindig in 'n page_load

Eerste postback (gegenereer deur autopostback teh ComboBox se)

Postback oproep stapel http://www.juanformoso.com.ar/images/callstack1 .jpg

Tweede postback (dit is wat ek wil om uit te vind hoekom dit gebeur)

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

Enige voorstelle? Wat kan ek kyk?

Was dit nuttig?

Oplossing

Dit is 'n baie spesifieke probleem met hierdie kode, Ek twyfel of dit sal nuttig wees vir iemand anders wees, maar hier gaan dit:

'n tjek is om onchange die combo's met 'n ekstra indien, indien die toestand is ontmoet, 'n uitdruklike oproep aan die postback funksie gemaak. As die combo is gestig om AutoPostback, asp.net bygevoeg die postback oproep weer, die vervaardiging van die twee postbacks ...

Die gegenereerde html was soos volg:

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

Ander wenke

Eerste ding wat ek sou kyk vir is dat jy nie die tweede ComboBox se AutoPostBack eiendom gestel is. As jy die waarde in die tweede combo met daardie stel waar eiendom te verander, ek glo dit sal 'n postback op daardie beheer te genereer.

Het jy enige kode wat jy kan deel? Double post rug geteister my soveel in klassieke ASP terug in die dag gemerk dat dit wat my uiteindelik gevra word om vir eens en altyd oorskakel na NET. Wanneer ek probleme soos hierdie vir NET het, gaan ek na elke beheer en elke bladsy-element soos vrag, init, prerender, klik, SelectedIndexChanged, en dies meer en sit 'n breekpunt.

Selfs as ek-kode nie daar het nie, sal ek iets soos voeg:

Dim i As Integer
i = 0

Ek is gewoonlik in staat om 'n aksie wat ek nie verwag het om vas te stel en op te los as dit nodig is. Ek stel voor jy dit hier doen.

Sterkte.

Gaan Request.Form [ "__ EVENTTARGET"] aan die beheer inisieer die postback vind -. Wat kan help om dit te vernou

As ons kyk na die callstacks, en 'n paar Reflectoring (in ASP.NET 2 - Ek het nie '1.1 handig) - dit lyk soos SessionStateModule.PollLockedSessionCallback is deel van die HttpApplication begin roetines. Dit kan moontlik wees dat jou inligting word herwin -. Ek is redelik seker dat 'n gebeurtenis kry geskryf in die Event log vir daardie

My enigste ander voorstel sou Fiddler of iets wees op die kliënt om HTTP verkeer te vang.

Dit is baie oud post, maar mense steeds op soek na hierdie vir oplossing presies dieselfde as wat ek gedoen het verlede week.

Soos Grengby gesê Double gebeure is primêre redes - maar die verwydering van een van hulle is 'n opsie nie altyd. Ten minste op my geval en ek moes dit op te los op aansoek 3rd party se.

Ek het ook volgende script en gewysig ASP vorm op masterpage:

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

Dit blyk te werk en stuur jou kommentaar.

Arun

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

Gelisensieer onder: CC-BY-SA met toeskrywing
Nie verbonde aan StackOverflow
scroll top