PDA

View Full Version : سوال: چرا بعضی وقتها کدهای پروژه asp.net دو بار اجرا میشوند؟



Mostafa_Sabeti
شنبه 12 مرداد 1387, 23:48 عصر
وقتی پروژه asp.net خود را trace می کردم متوجه شدم که کدهای نوشته شده برای رویدادها 2 بار تکرار میشوند مثلا رویداد کلیک button یا حتی رویداد page load و من وقتی متوجه این مشکل شدم که میخواستم در یک جدول سطری را درج کنم و خطای duplicate key صادر میشد و من بعد از trace کد آن متوجه شدم که کدها دو بار اجرا میشوند.
تا بحال کسی به این مشکل برخورد کرده ؟

FirstLine
یک شنبه 13 مرداد 1387, 08:47 صبح
با سلام
من دقیقا همین مشکل را با VS2003 &VB.NET داشتم اینجا هم پرسیدم اما به نتیجه نرسیدم، فقط تنها کاری که تونستم انجام بدهم و مشکلم حل شد این بود که اون فایل رو از پروژه حذف کردم و مجدد اون فایل را ایجاد و کدها را داخلش کپی کردم.
راحت بود نه!
امیدوارم مشکلت حل بشه، مشکل من که اینجوری حل شد.
با تشکر

Mostafa_Sabeti
یک شنبه 13 مرداد 1387, 09:01 صبح
ولی اگر دوباره این مشکل بوجود اومد چی؟
ایجاد دوباره فایل یا پروژه و کپی دوباره کدها داخل اون به نظر وقت گیر و غیر منطقی می آید.

naeeme
یک شنبه 13 مرداد 1387, 11:58 صبح
تا حالا چک کردین که چه اتفاقی میوفته؟؟
مثلا اگه شما بر روی button کلیلک کنین، حتما page_Load اتفاق میوفته( اگه اتفاق نیوفته باید دنبال علت بگردین)
یا مثلا در رویداد کلیک باید valid بودن صفحه چک بشه
شما یه بار چنین کنین، تمام رویدادهایی که اتفاق می افتن رو لیست کنین و ببینین کدوم تکراری هس. بعد به رویداد قبل از تکرار برین و ببینین کاری کردین که رویداد بعدی فراخوانی بشه! مثلا یه بار من این اشتباه رو کردم. datasource یک dropdownlist رو که auotopostback شده بود رو عوض می کردم و شاکی بودم که چرا selectedChanged فراخوانی میشه!

meysam_12001
یک شنبه 13 مرداد 1387, 12:56 عصر
برای حل این مشکل برو به قسمت Html تو کد HTML برای Button یه Event به نام OnClick هست این Event رو از کد Html برای Button حذف کن.
الان برای شما به این صورت است :


<asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click"/>

حالا OnClick="Button1_Click رو حذف کن :


<asp:Button ID="Button1" runat="server" Text="Button"/>

Mostafa_Sabeti
یک شنبه 13 مرداد 1387, 17:53 عصر
جالبه . حق با شماست آقا میثم
من فکر میکردم که وجود این onclick داخل تگ لازم است. فکر نمیکردم مایه دردسر باشد.

milade
یک شنبه 13 مرداد 1387, 18:33 عصر
فکر نکنما
چون چرا برای برنامه من مشکلی پیش نمی اد؟
بای

Mostafa_Sabeti
پنج شنبه 17 مرداد 1387, 08:52 صبح
خوب مشکل من که واقعاً حل شد و دیگه هنگام insert به جدول مشکل key duplicate را ندارم. البته من هنوز متوجه نشدم که چرا .net رویداد onclick را به دکمه های استاندارد .net اضافه میکند. و قاعدتا باید فقط handle مربوط به رویداد کلیک را به آخر تابع ایجاد شده اضافه کند.