السلام عليكم
عندي DetailsView
وسويت له فاليديشن
Regular Expression
حق التاريخ
بس عندي سؤال
هذا السطر من الكود وين اكتبه ؟؟
RangeValidator1.MaximumValue = DateTime.Now.ToShortDateString()
المفروض اكتبه في البيج لود
لكن ما يستوي
السلام عليكم
عندي DetailsView
وسويت له فاليديشن
Regular Expression
حق التاريخ
بس عندي سؤال
هذا السطر من الكود وين اكتبه ؟؟
RangeValidator1.MaximumValue = DateTime.Now.ToShortDateString()
المفروض اكتبه في البيج لود
لكن ما يستوي
عليك بالتعامل مع الحدث 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)
مدني
لازم تعمل للحقل الذي تريد التحقق منه convert to template وبعدين تعمل تحرير لهذا القالب واضافة rangevalidator ووضع
controltovalidate = textbox1 على سبيل المثال .
يعني ما بلزم كتابة كود .
مشكور اخوي مدني
زين بس ممكن تحولي الكود
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
اخي 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
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
تسلم اخوي
الله يعطيك العافيه
بارك الله بك يا اخ مدني
هذا الموضوع مغلق.