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

سؤال عن استخدام الajax

بدأه nds في 8 أبريل 2009 · 3 رد · 501 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بســم الله الـرحمــن الرحيــم

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

بدأت استخدم تقنية الـAJAX ولكن صادفتني مشكلة ممكن لعدم فهمي لعمل الTimer

الكود التالي يعمل بشكل صحيح (يعطيني قيمة عشوائية بين العددين في كل 3 ثواني)

protected void Timer1_Tick(object sender, EventArgs e)
		{
			Random r = new Random();
			int n = r.Next(1, 18);
					  Label1.Text = n.ToString()];

		}

المطلوب عداد يعد بشكل تنازلي كالتالي

protected void Timer1_Tick(object sender, EventArgs e)
		{
			n--;

			  Label1.Text = n.ToString()];

		}

الكود السابق يعمل مرة واحدة فقط

حاولت ولكن بدون فائدة

تم تعديل هذه المشاركة بواسطة nds في 8 أبريل 2009 في 20:05

#2

السلام عليكم

ارجو التوضيح اكثر

تريد كود يقوم بطباعة رقم ويتم تقليله كل فترة زمنيه .. ؟

protected void Timer1_Tick(object sender, EventArgs e)
		{
			n--;

			  Label1.Text = n.ToString()];

		}

هذا الكود لا يعمل مرة واحدة كما ترى

فهو يقوم بتكرار العملية فى كل مرة

ولكن .. يتخيل لك انها لا تتكرر

---

المشكلة تظهر فى كيفية عمله

ففى المرة الاولى .. تخيل أن المتغير n = 10

سيأتى بعد الفترة ولتكن ثانية

يقوم بعمل ريفريش للصفحة .. ويعود على load

فيجد المتغير n بقيمته الاولى.. وبعد مرور الوقت .. يقوم بتكرار العملية .. فيصبح 9

ويعود بعد مرور الثانية .. ويعمل ريفريش .. ويدمر كل الداتا .. ويعود على الـ load

ويعرف المتغير n = 10

وينفذ العملية .. فتصبح القيمة .. ؟ اكيد 9 ايضا

فى هذه الحالة .. تحتاج ان تقوم بحفظ هذا المتغير فى شبه حافظة ، حتى لا يتدمر فى كل عمل ريفريش

وطالما انك تستخدمها فى نفس الصفحة .. فلك ان تستخدم viewState

	protected void Page_Load(object sender, EventArgs e)
	{
		if (!Page.IsPostBack)
		{
			n = 10;
			ViewState.Add("number", n);
		}
	}
	protected void Timer1_Tick(object sender, EventArgs e)
	{
		Label1.Text = DateTime.Now.ToString();
		n = (int) ViewState["number"];
		n--;
		Label2.Text = n.ToString();
		ViewState["number"] = n;
	}

فى هذه الحالة .. سيعمل بشكل سليم بإذن الله :)

لله في الآفاق آيات لعـــل = أقلهـــا هو ما إليه هداكا

ولعل ما في النفس من آياته = عجبٌ عجابٌ لو ترى عيناكا

والكون مشحون بأسرار إذا = حاولت تفسيراً لهــا أعياكا

#3

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

شكراً لك اخي الكريم على التوضيح ( فعلا حلت المشكلة بمساعدتك )

ماكنت اجهله هو انه يتم عمل ريفرش للصفحة

كنت اعتقد ان بما انني استخدم updatePanel فلا يتم عمل ريفريش الا على هذة الاداة

اشكرك مرة اخرى

#4

وجزاكم بمثله

ومعك لو فيه اى استفسار بإذن الله :)

وفقنا الله وإياك ،،

لله في الآفاق آيات لعـــل = أقلهـــا هو ما إليه هداكا

ولعل ما في النفس من آياته = عجبٌ عجابٌ لو ترى عيناكا

والكون مشحون بأسرار إذا = حاولت تفسيراً لهــا أعياكا

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