سؤال

لدي ASP.NET 1.1 التطبيق ، و أنا أحاول معرفة السبب عند تغيير عنصر تحكم تحرير وسرد القيمة التي يتم استخدامها لملء آخر (الوالدين والطفل علاقة) ، وهما postbacks يتم إنتاجها.

لقد راجعت ودققت رمز وأنا لا يمكن العثور على السبب.

هنا كل أكوام الدعوة التي تنتهي في page_load

الأولى إعادة النشر (التي تم إنشاؤها بواسطة تيه تحرير وسرد هو autopostback)

إعادة النشر الاستدعاءات http://www.juanformoso.com.ar/images/callstack1.jpg

الثاني إعادة النشر (هذا هو ما أريد أن أجد لما يحدث)

النص البديل http://www.juanformoso.com.ar/images/callstack2.jpg

أي اقتراح ؟ ماذا يمكنني أن تحقق ؟

هل كانت مفيدة؟

المحلول

انها مشكلة كبيرة مع هذا القانون ، أشك في أنها سوف تكون مفيدة لشخص آخر ، ولكن هنا يذهب:

الاختيار تم إضافتها إلى التحرير والسرد onchange مع إذا ، إذا تحقق الشرط ، دعوة صريحة إلى إعادة النشر وظيفة تم.إذا تم تعيين التحرير والسرد AutoPostback, asp.net إضافة إلى إعادة نشر الدعوة مرة أخرى ، إنتاج اثنين postbacks...

Html ولدت كان مثل هذا:

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

نصائح أخرى

أول شيء كنت انظر أن لا يكون الثاني تحرير وسرد هو AutoPostBack الملكية تعيين إلى true.إذا قمت بتغيير القيمة في التحرير والسرد الثاني مع أن الملكية الحقيقية ، وأعتقد أنه سيتم إنشاء إعادة النشر على تلك السيطرة.

هل لديك أي رمز يمكن أن حصة ؟ مزدوجة بعد ظهورهم أزعجني كثيرا في ASP الكلاسيكية مرة أخرى في اليوم الذي كان أخيرا ما دفعني للانتقال إلى .صافي مرة واحدة وإلى الأبد.كلما لدي مشاكل مثل هذه .صافي أنا أذهب إلى كل التحكم في كل عنصر صفحة مثل الحمل ، init, عرض مسبق ، انقر فوق ، SelectedIndexChanged ، مثل و ضع نقطة توقف.

حتى لو لم يكن لديك رمز إلى هناك سوف أدخل شيئا مثل:

Dim i As Integer
i = 0

أنا عادة ما تكون قادرة على تحديد بعض الإجراءات التي لم أكن أتوقع وإصلاح حسب الحاجة.وأود أن أقترح عليك أن تفعل ذلك هنا.

حظا سعيدا.

التحقق من الطلب.شكل["__EVENTTARGET"] إلى العثور على التحكم في بدء إعادة النشر - التي قد تساعدك على تضييق عليه.

تبحث في callstacks بعض Reflectoring (في ASP.NET 2 - ليس لدي 1.1 مفيد) - يبدو SessionStateModule.PollLockedSessionCallback هو جزء من HttpApplication بدء التشغيل الروتينية.قد يكون من الممكن أن التطبيق الخاص بك يتم إعادة تدويرها - أنا متأكد من هذا الحدث يحصل مكتوبة في سجل الأحداث للحصول على ذلك.

بلدي فقط اقتراح آخر سيكون عازف الكمان أو شيء ما على العميل لالتقاط حركة مرور HTTP.

هذا هو آخر العمر, ولكن الناس لا تزال تبحث في هذا الحل بالضبط نفس كما فعلت الأسبوع الماضي.

مثل Grengby قال مزدوجة الأحداث هي الأسباب الرئيسية - ولكن إزالة واحد منهم ليس دائما خيارا.أتلست على حالتي و أنا قد لحل هذه على 3rd الطرف التطبيق.

لقد تم إضافة البرنامج النصي التالي وعدل ASP نموذج على masterpage:

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

يبدو أن هذا العمل يرجى إرسال التعليقات الخاصة بك.

ارون

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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top