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

Disable Page_Load Event Asp.net Ajax

مغلق
بدأه الفارس الأسود في 21 مارس 2007 · 4 رد · 740 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

الاخوة الكرام

أستخدم ASP.NET AJAX في المشروع الذي أعمل فيه حاليا

صادفتني مشكلة تتلخص في أنني أريد ان أعطل ال Page_Load event في حالة حصول Asynchronous Request صادر عن UpdatePanel Control

مشكلتي هي أنني لا أستطيع تعطيل ال page_laod event

أرجو الافادة

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

#2

لا يمكن تعطيل هذا الـevent و لكن ربما تستطيع وضع شرط في بداية الدالة التي تتولى معاملته بحيث لا ينفذ الكود بشرط معين.

#3
if(condition) return;
#4

مثل ما تفضل الاخ System Down لا يمكنك الغاء هذا الـevent .

لكنك يمكن تحديد ذلك من خلال isInAsyncPostBack Property وهي احد خصائص الScriptManager التي تستطيع من خلالها اذا حدث asynchronous postback ان تحدد الكود الذي لا تريد ان يتنفذ .

مع التحية ..

#5

السلام عليكم

استخدم هذه الميثود لتعرف هل الrequest أتي من updatepanel ام لا

	private bool isAJAX_Request()
	{
		string p1, p2;
		return isAJAX_Request(out p1, out p2);
	}
	private bool isAJAX_Request(out string TargetPanelID, out string TargetControlID)
	{
		bool retVal = false;
		//TargetPanelID  => tells you witch update panel called the request
		//TargetControlID=> the control id  
		TargetPanelID = null;
		TargetControlID = null;
		if (Request.RequestType == "POST")
		{
			string scrMgrID = "ScriptManager1";//<= the Script Maneger ID in the Page		
			string EventTarget = Request.Form[scrMgrID];
			if (EventTarget != null)
			{
				int DsIndex = EventTarget.LastIndexOf('|');
				TargetPanelID = EventTarget;
				retVal = true;
				if (DsIndex > 0)
				{
					TargetPanelID = EventTarget.Substring(0, DsIndex);
					TargetControlID = EventTarget.Substring(DsIndex + 1);
				}
			}
		}
		return retVal;
	}

تستطيع استخدامها مي الpage_load كالتالي

protected void Page_Load(object sender, EventArgs e)
	{   

		if (!isAJAX_Request())
		{
			//this request is not comming from ajax tools
			//do what ever you want
			Response.Write(DateTime.Now.ToString());
		}

طبعا تسطتيع ازالة الTargetPanelID , TargetControlID انا فقط وضعتهما اذا أردت ان تعرف اية updatepanel اتا منها الrequest واية control الذي call الrequest

والله أعلم

سبحانك اللهم وبحمدك أشهد ان لا اله الا أنت

أستغفرك وأتوب اليك

الهم صلي وسلم وبارك على سيدنا وحبيبنا محمد

هذا الموضوع مغلق.

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