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

سؤال عن ال CustomValidator ؟؟؟

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

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

عندي سؤال عن كيفية استخدام الـ CustomValidator و المثال كالتالي

لدي TEXTBOX أدخل بواسطتة التاريخ و أريد أن أختبر إذا كان التاريخ المدخل أقل من تاريخ اليوم لا يقوم بأي حدث

قمت بإنزال الـ CustomValidator كالتالي :

<asp:TextBox ID="txtdate" runat="server" CssClass="innertext" MaxLength="50" Width="145px"></asp:TextBox>
		<asp:CustomValidator ID="CustomValidator1" runat="server" ErrorMessage="*" ControlToValidate="txtdate" OnServerValidate="CustomValidator1_ServerValidate"  Display="Dynamic" SetFocusOnError="True" ></asp:CustomValidator>

والـ codfile كالتالي :

protected void CustomValidator1_ServerValidate(object source, ServerValidateEventArgs args)
	{
		String daten = DateTime.Now.Date.ToShortDateString();

		if (txtdate.Text == daten)
			args.IsValid = true;
		else
		{  
			args.IsValid = false;
		}

	}

عندما أقوم بتطبيق هذا الكلام في صفحة للإدخال المفروض أني إذا أدخلت تاريخ أقل من تاريخ

اليوم لا يقوم بتحميل الصفحة ولا تتم عملية الإدخال و لكن الذي يحدث العكس تماما . ما السبب ؟؟

سبحان الله وبحمده سبحان الله العظيم

#2

انت تقارن string والمفروض انك تقارن DateTime

حول التاريخ المدخل الى نوع DateTime ومن ثم قم بالمقارنة

The World Must Be Crazy

#3

شكرا على تعقيبك أستاذ newbie و لكن المشكلة عندي ليست في المقارنة ، بالعكس المقارنة تمشي معي بشكل صحيح

(طبعا في حالة المساواة) و لكن المشكلة أنة عندما يمر على السطر

args.IsValid = false;

لا يحدث شئ ، أليس من المفترض أنة إذا مر على هذا السطر يوقف تحميل الصفحة و لا يقوم بعملية الإدخال أصلا ؟؟!!

سبحان الله وبحمده سبحان الله العظيم

#4

اها

يمكنك ان تشيك على حدث الادخال

 if (Page.IsValid)
		{
		   //do
		}

او طريقة اخرى ان تستخدم RangeValidator

	<asp:textbox id="textbox1" runat="server"/>
<asp:RangeValidator id="DateValidator" runat="server"
	ControlToValidate="textbox1"
	MaximumValue='1/1/3000'
	Type="Date"
	ErrorMessage="*" Display="static">*</asp:RangeValidator> 
		<asp:Button ID="Button1" runat="server" Style="position: relative" Text="Button" PostBackUrl="~/mypage.aspx" />

protected void Page_Load(object sender, EventArgs e)
	{
		DateValidator.MinimumValue = DateTime.Now.ToShortDateString();
	}

MaximumValue تم تحديدها في markup اما MinimumValue وهي التي تهمك تم تحديدها فيpageloud وهكذا تضمن التاريخ الحالي

قد يكون هناك حلول افضل والله اعلم

The World Must Be Crazy

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

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