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

اعاده تحميل الصفحه عند تنفيذ اي حدث

بدأه صاحبة السمو في 9 نوفمبر 2008 · 10 رد · 1,993 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكــم ورحمـة الله وبركاتــة

اخواني الكرام

عندي مشكله غريبه

الان انا عندي صفحه ويب تحتوي على بوتم لمسح الحقول

الاحظ انه كل ما اضغط على البوتم الخاص بمسح الحقول او اي بوتم اخر

فانه يقوم بعمل ريفريش للصفحه يعني اعادة تحميلها مره اخرى بعد تنفيذ حدث البوتم

والمفروض انو يمسح الحقول او ينفذ العمليه المطلوبه دون ان يعمل تحميل للصفحه من اول وجديد(لانو اغلب العمليات لا تحتاج للاتصال بالسيرفر كعملية مسح الحقول مثلا)

فكيف يمكنني عمل ذلك

1145392391.gif
#2

السلام عليكــم ورحمـة الله وبركاتــة

هذا ما يسمى POSTBACK حتى تستطيعي رؤية التعديلات على الصفحة يجب اعادة تحميله

الحل الانسب هو ان تقومي بتحديث العناصر التي تهمك بالصفحة وليس كل الصفحة ، ويتم ذلك باستخدام تقنية AJAX حيث نستخدم ما يسمى Update Panel

ونضع فيه العناصر التي يلزمها تحديث ، وهذا ما يؤدي الى تحديث العناصر دون عمل Refresh للصفحة كاملة

مع الاحترام والتقدير

#3

الاجاكس يعمل بوست باك لجزء من الصفحة , و اذا كنتي لا تريدين رفرش لجزء من الصفحة ... استعملي الجافا سكربت لتصفير الحقول المطلوبة ..

#4
اقتباس
والمفروض انو يمسح الحقول او ينفذ العمليه المطلوبه دون ان يعمل تحميل للصفحه من اول وجديد

أي كود يتم وضعه في حدث في ASP.net مثل حدث button_click وغيره حتى يتم تنفيذه يجب الرجوع الى السيرفر اي عمل تحديث لكامل الصفحة .

للتغلب على مثل هذه المشكلة يوجد عدة طرق منها استخدام الآجاكس كما ذكر الاخوة او استخدام الجافاسكريبت لتفريغ الحقول

#5

هل يمكن وضع مثال بسيط لكفيه مسح الحقول

او بمعني اخر لكيفيه ربط الجافا اسكربت مع ادوات اـasp.net

1145392391.gif
#6

بفرض وجود 3 textboxes و html button لتفريغ الحقول بالشكل التالي

	   <asp:TextBox ID="TextBox1" runat="server">text 1</asp:TextBox>

		<asp:TextBox ID="TextBox2" runat="server">text 2</asp:TextBox>

		<asp:TextBox ID="TextBox3" runat="server" TextMode="MultiLine">text 3
		</asp:TextBox>

		<input id="btnclear" type="button" value="Clear Inputs" onclick="return btnclear_onclick()" />

و تكون دالة جافا سكربت btnclear_onclick بالشكل التالي

function btnclear_onclick()
{
	document.getElementById('<%= TextBox1.ClientID %>').value = "";
	document.getElementById('<%= TextBox2.ClientID %>').value = "";
	document.getElementById('<%= TextBox3.ClientID %>').value = "";
}

يوجد مثال في المرفقات

InputsClear.rar

تم تعديل هذه المشاركة بواسطة AhmedElbaz في 10 نوفمبر 2008 في 09:20

#7

شكرا اخي الكريم

ولكن هناك نقطه مهمه

الاحط الكود لا يتنفذ ادا كان البوتم من نوع asp:Button

بينما يعمل بشكل صحيح ادا كان البوتم من نوع <input id="btnclear" type="button"

فهل توجد مشكله عند استخدام الاسكربت اعتمادا على النوع

1145392391.gif
#8

في هذه الحالة انت تحتاج الي HTML Input tag من نوع button لانك لا تحتاج الي عمل postback / server side event

بمعني انت تحتاج الي كود ينفذ عن العميل يعني javascript ,و لكن يمكنك ايضا استخدام Asp button لتنفيذ client code باستخدام OnClientClick event الموجود في Asp button و لكن بعد تنفيذه سوف يقوم بعمل postback ايضا يعني ينفذ كود client و ايضا server في نفس ال click و ممكن تستخدم ال asp button بنفس طريقة ال html button يعني ينفذ client code بس بالطريقة التالية

<asp:Button runat="server" ID="btnASP" Text="HTML Button Like" OnClientClick="btnclear_onclick();return false;" />

لاحظ وجود return false بعد استدعاء ال javascript function بمعني منع عمل postback

بالتوفيق

تم تعديل هذه المشاركة بواسطة AhmedElbaz في 10 نوفمبر 2008 في 12:26

#9

شكرا اخي الكريم

لدي عدة استفسارات حول نفس الموضوع سوف اضعها لاحقا

ولكن حاليا الاحط ان الكود ينفذ فقط عند تشغيل الموقع عن طريق الفيجول استديو

ولكن عندما اعمل له publish واقوم برفعه الى السيرفر فانه لا يعمل

فما المشكله

علما انني قد استخدمت الجافا اسكربت في اجزاء اخرى من الموقع وجميعها تعمل بشكل صحيح الا الكود الموجود بالاعلى والذي يقوم بمسح الحقول

1145392391.gif
#10

عفوا اخي الكريم

الكود لا يعمل على المتصفح الذي جربت عليه وهو firefox

ولكن يعمل بشكل صحيح على ie7

فل توجد طريقه لنفس الكود تستخدم على كافة انواع المتصفحات

1145392391.gif
#11

اتصور ان الجافا سكربت معطلة في الفايرفوكس . لتفعيلها من خيارت الفايرفوكس ثم المحتوى ثم تفعيل الجافاسكربت

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