الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيف أمنع postback عند عمل إعادة تحميل الصفحة

بدأه allam000 في 4 مارس 2010 · 13 رد · 2,436 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

عندي مشكلة وشرحها كالتالي :

قمت بعمل نموذج لإدخال بيانات المستخدم ( مثلا سجل زوار ) به زر واحد يقوم بحفظ البيانات المدخلة في قاعدة البيانات عند النقر على زر إرسال يتم حفظ البيانات في قاعدة البيانات

والمشكلة تحدث عند عمل تحديث للصفحة يقوم البرنامج بإرسال آخر عملية حفظ مرة أخرى ( أي يقوم بإرسال الحفظ بيانات النموذج التي تم إرسالها مرة أخرى ) رغم أنني فرغت حقول النموذج بعد عملية الحفظ كما أنني وضعت أدوات تحقق من تعبئة الحقول.

فما هو الحل؟؟؟

الذي أريده هو إيقاف إرسال البيانات المدخلة عند النقر على زر تحديث في المستعرض

مرفق ملف المشكلة للتجريبوالتعديل عليه

وجزاكم الله خيرا

guestbook.rar

#2

صديقي تعمل انتقال الى الصفحة بعد عملية الحفظ

Response.Redirect("guestbook.aspx");

اي تكون عملية الانتقال هي عبارة عن عملية تحميل جديدة للصفحة من دون حفظ viewstate

In bad state

#3

أظن لا يوجد حل إلا كما ذكر الأخ AsJsGle ... وهي أن تحول المستخدم بعيداً عن صفحتك ...

مشكلة الـ Submit عموماً سواء في ASP.NET أو حتى HTML عادي .. أن المتصفح يحفظ أخر عملية قمت بها وبالتالي عند عمل تنشيط يفترض أنك تريد تكرار هذه العملية ... وهذا ليست مشكلة ASP.NET مطلقاً ..

ويمكن لتفادي هذه النقطة مطلقاً عدم استخدام أي Submit Buttons في الصفحة واستخدام HTML Button عادي وربطه بـ JavaScript لكي يقوم بعمل إرسال البيانات عبر Ajax وليس عبر Postback ... ساعتها المتصفح عند عمل ريفرش لن يعمل إعادة إرسال للداتا ...

1

ASP.NET Team Leader

moh_kin_mah@hotmail.com

--------------------------------

لو أعجبك أي من مشاركاتي ... برجاء قم بتقييم المشاركة عبر الأزرار الموجودة أسفل يسار كل مشاركة

#4

نفع الله الجميع بعلمكم وجزاكم الله خيرا

ويبدو لي أن حل الأجاكس كما ذكر الأخ moh_kin حيث أني لا أريد الإنتقال إلى صفحة أخرى

:) مرة أخرى جزاكم الله خيرا :)

#5

صديقي يمكنك استيراد فضاء اعدادات الوب

system.web.configuration

وعمل ايقاف لل

viewstate

موقتا حتى تنتهي من عملية الارسال للبينات

بتكون لم تستخدم اي جاكس او طريقة الهروب

In bad state

#6
AsJsGle كتب:

صديقي يمكنك استيراد فضاء اعدادات الوب

system.web.configuration

وعمل ايقاف لل

viewstate

موقتا حتى تنتهي من عملية الارسال للبينات

بتكون لم تستخدم اي جاكس او طريقة الهروب

أخي الفاضل ممكن توضيح أكثر ... لأني اظن أن Viewstate ليس له علاقة نهائياً بموضوع حفظ المتصفح لحدث Submit ... لأن ذلك يتم حفظه سواء صفحة بها Viewstate أم لا ... وسواء ASP.NET أم HTML عادية أو أي لغة أخرى ...

وأظن أيضاً إيقاف Viewstate سيمنع الكونترولز من حفظ قيمها عند عودة الصفحة للمتصفح ... فبرجاء التوضيح حتى أصحح معلوماتي لو كنت مخطأ ...

تحياتي

ASP.NET Team Leader

moh_kin_mah@hotmail.com

--------------------------------

لو أعجبك أي من مشاركاتي ... برجاء قم بتقييم المشاركة عبر الأزرار الموجودة أسفل يسار كل مشاركة

#7
moh_kin كتب:

أخي الفاضل ممكن توضيح أكثر ... لأني اظن أن Viewstate ليس له علاقة نهائياً بموضوع حفظ المتصفح لحدث Submit ... لأن ذلك يتم حفظه سواء صفحة بها Viewstate أم لا ... وسواء ASP.NET أم HTML عادية أو أي لغة أخرى ...

وأظن أيضاً إيقاف Viewstate سيمنع الكونترولز من حفظ قيمها عند عودة الصفحة للمتصفح ... فبرجاء التوضيح حتى أصحح معلوماتي لو كنت مخطأ ...

تحياتي

صديقي انت بنفسك قلت لا يحفظ قيم الكنترولز

صديقي لو قمت بطباعة الviewstate

تجد انها عبارة عن سلسلة من المحارف

من ضمنها ستجد القيمة التي ادخلتها بالحقل النصي

عندي ايقاف view state لن نقو بتخزين قيم الحقول وبذلك عند اعادة التحديث لن تعيد البيانات من جديد

هذا ليس ردي سادعمه بمثال قرب ان شاء الله

In bad state

#8
AsJsGle كتب:

صديقي انت بنفسك قلت لا يحفظ قيم الكنترولز

صديقي لو قمت بطباعة الviewstate

تجد انها عبارة عن سلسلة من المحارف

من ضمنها ستجد القيمة التي ادخلتها بالحقل النصي

عندي ايقاف view state لن نقو بتخزين قيم الحقول وبذلك عند اعادة التحديث لن تعيد البيانات من جديد

هذا ليس ردي سادعمه بمثال قرب ان شاء الله

صديقي العزيز ... أنت لم تجب عن سؤالي ... نعم أنا قلت أن بإيقاف ViewState لن تحفظ الأدوات قيمها ... ولكن سيظل المتصفح يحفظ Submit الذي حدث ... إذن ما الفائدة من هذه الطريقة لأني ذكرت وعلى حسب علمي فإن الأحداث مثل Submit يحفظها المتصفح وليس ViewState ... وبإيقاف ViewState عند عمل Submit عادي لن يتمكن الكود من الوصول للقيم بالطريقة العادية وعند عودة الصفحة سيظهر الصفحة فارغة من القيم وهذه ستكون غريبة للمستخدم العادي ..

إذن فالخلاصة أن إيقاف ViewState لن يحل المشكلة التي نحن بصددها في هذه المشاركة وهي منع حدوث Postback عند عمل تحديث للصفحة ... بل سيزيد المشاكل المتعلقة بالوصول للقيم المكتوبة في الSubmit العادي وكذا ستعود الصفحة فارغة للمستخدم وهذا قد يكون عكس المطلوب هنا ...

تقبل تحياتي وفي انتظار ردك لعلي أكون مخطئاً

ASP.NET Team Leader

moh_kin_mah@hotmail.com

--------------------------------

لو أعجبك أي من مشاركاتي ... برجاء قم بتقييم المشاركة عبر الأزرار الموجودة أسفل يسار كل مشاركة

#9

معك حق :wink:

In bad state

#10

السلام عليكم

اخي العزيز جرب اظافة هذا الكود في حدث page_load

if(!IspostBack)

{

}

هنا سوف يمنع البوست باك

وسوف ارفق لك مثال توضيحي

وشكرا

#11
master82 كتب:

السلام عليكم

اخي العزيز جرب اظافة هذا الكود في حدث page_load

if(!IspostBack)

{

}

هنا سوف يمنع البوست باك

وسوف ارفق لك مثال توضيحي

وشكرا

أخي الكريم هو يتحدث عن منع حدوث Submit بعد عمل Refresh للصفحة بعد الضغط على الرز ... يمعنى منع المتصفح من إعادة Submit ... برجاء إعادة قراءة المناقشات التي تمت ...

ASP.NET Team Leader

moh_kin_mah@hotmail.com

--------------------------------

لو أعجبك أي من مشاركاتي ... برجاء قم بتقييم المشاركة عبر الأزرار الموجودة أسفل يسار كل مشاركة

#12

صديقي محمد معك حق

انا ما بشتغل غير طريقة الهروب بس كنت فهمان الفكرة غلط

وانا بتشكرك على تصحيح الفكرة :)

In bad state

#13
AsJsGle كتب:

صديقي محمد معك حق

انا ما بشتغل غير طريقة الهروب بس كنت فهمان الفكرة غلط

وانا بتشكرك على تصحيح الفكرة :)

على الرحب والسعة صديقي ... تحياتي

ASP.NET Team Leader

moh_kin_mah@hotmail.com

--------------------------------

لو أعجبك أي من مشاركاتي ... برجاء قم بتقييم المشاركة عبر الأزرار الموجودة أسفل يسار كل مشاركة

#14

ما شاء الله على هذه المناقشات الرائعة

بارك الله في الجميع

وجزاكم الله خيرا

مواضيع مشابهة