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

DetailsView Validation

مغلق
بدأه Miss-Hearts في 9 يونيو 2007 · 7 رد · 716 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

عندي DetailsView

وسويت له فاليديشن

Regular Expression

حق التاريخ

بس عندي سؤال

هذا السطر من الكود وين اكتبه ؟؟

RangeValidator1.MaximumValue = DateTime.Now.ToShortDateString()

المفروض اكتبه في البيج لود

لكن ما يستوي

#2

عليك بالتعامل مع الحدث ItemCreated ثم البحث عن الValidator ثم اسناد الخصائص:

protected void DetailsView1_ItemCreated(object sender, EventArgs e)
	{
		if (DetailsView1.CurrentMode == DetailsViewMode.Edit || DetailsView1.CurrentMode == DetailsViewMode.Insert)
			((RangeValidator)DetailsView1.FindControl("RangeValidator1")).MaximumValue = DateTime.Now.ToShortDateString();
	}

يجب وجود ال Validator في نموذج الاضافة و الحذف و بنفس الاسم ,اي RangeValidator1 او غيري الشرط حسب احتياجاتك (Edit,Insert)

مدني

#3

لازم تعمل للحقل الذي تريد التحقق منه convert to template وبعدين تعمل تحرير لهذا القالب واضافة rangevalidator ووضع

controltovalidate = textbox1 على سبيل المثال .

يعني ما بلزم كتابة كود .

#4

مشكور اخوي مدني

زين بس ممكن تحولي الكود

VB

لاني حاولت وماعرفت

انا استخدم الكونترول في edit

جربت هذا بس فيه ايرور

ممكن الله يخليكم حد يسولي اياه اليوم ضروري

Protected Sub DetailsView1_ItemCreated(ByVal sender As Object, ByVal e As System.EventArgs) Handles DetailsView1.ItemCreated





If DetailsView1.CurrentMode = DetailsViewMode.Edit Then

((RangeValidator)DetailsView1.FindControl("RangeValidator5")).MaximumValue = DateTime.Now.ToShortDateString()



End If



End Sub

اخوي طارق يس انا سويت جي لكن

اريد الفاليديشن للتاريخ انا ما يكون اقل من تاريخ اليوم او اكثر

عشان جي محتاجه اكتب الكود

تم تعديل هذه المشاركة بواسطة Miss-Hearts في 9 يونيو 2007 في 22:48

#5

اخي TareqVB ,

هناك سببان لاضافة الكود الذي كتبته:

الاول هو ان RangeValidator يحتاج لقيم MinimumValue و MaximumValue كي يتحقق من ان التاريخ المدخل يقع بين طرفي الشرط.اذا كانت القيم ثابتة فلا داعي لكتابة الكود الذي اضفته انفا لكن هذه القيم قد تكون ديناميكية تحدد اثناء تشغيل الفورم لذلك وجب وضع مثال عن ذلك

اذا كانت قيم الشرط ثابتة فاننا نكتفي باضافتها على الmarkup كالتالي:

<asp:RangeValidator ID="RangeValidator1" runat="server" ControlToValidate="TextBox1"
							ErrorMessage="RangeValidator" MinimumValue="01/01/2006" MaximumValue="06/10/2007"
							Type="Date"></asp:RangeValidator>

الان لو حاولت ان تضيف تاريخ اليوم كقيمة للخاصية من الmarkup

MaximumValue='<%=System.DateTime.Today%>'

فسييعطيك خطأ

ربما في هذه الحالة (حتى ايجاد حل اخر) وجب عمل ذلك ديناميكيا لذلك نحتاج ان نتعامل مع حدث انشاء سطر الاضافة و التعديل لان الRangeValidator غير موجود الا في هاذين الزمنين:

protected void DetailsView1_ItemCreated(object sender, EventArgs e)
	{
		if (DetailsView1.CurrentMode == DetailsViewMode.Edit || DetailsView1.CurrentMode == DetailsViewMode.Insert)
			((RangeValidator)DetailsView1.FindControl("RangeValidator1")).MaximumValue = DateTime.Now.ToShortDateString();
	}

مدني

تم تعديل هذه المشاركة بواسطة madani في 10 يونيو 2007 في 00:06

#6

VB.NET

Protected Sub DetailsView1_ItemCreated(ByVal sender As Object, ByVal e As System.EventArgs) Handles DetailsView1.ItemCreated
		If DetailsView1.CurrentMode = DetailsViewMode.Edit Then
			CType(DetailsView1.FindControl("RangeValidator5"), RangeValidator).MaximumValue = DateTime.Now.ToShortDateString()
		End If
	End Sub

تم تعديل هذه المشاركة بواسطة madani في 10 يونيو 2007 في 00:12

#7

تسلم اخوي

الله يعطيك العافيه

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

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