مقدمه :
از کنترل CompareValidator برای مقایسه مقدار وارد شده در یک کادر متن ( کنترل TextBox ) با یک کنترل کادر متن دیگر و یا یک مقدار از پیش تعیین شده ، استفاده می شود .
اگر نتیجه مقایسه یکسان و صحیح باشد ، کنترل مقدار True را به فرم برگردانده و فرم با موفقیت Submit می شود . در غیر اینصورت با اعلام یک پیام خطا آن را به کاربر اطلاع می دهد تا مقدار وارد شده را تصحیح کند .
یکی از کاربردهای مهم این کنترل را قبلا در فرم های ثبت نام در سایت های مختلف ، مشاهده کرده اید . در فرم های ثبت نام سایت ها از شما خواسته می شود تا رمز عبور خود را در یک کادر متن وارد کرده و برای حصول اطمینان مجددا همان مقدار را در یک کادر متن دوم نیز وارد نمایید . فرم مقدار ۲ کنترل رابا هم مقایسه کرده و چنانچه با هم یکسان باشند ، عملیات ثبت نام انجام می شود ، در غیر اینصورت به شما پیام هشدار می دهد . انجام چنین عملیاتی در فرم های ASP.Net بر عهده کنترل CompareValidator می باشد .
نحوه کار با کنترل CompareValidator :
برای استفاده از کنترل CompareValidator ، ابتدا باید این کنترل را به کنترل کادر متن ( TextBox ) که می خواهید عملیات اعتبار سنجی را بر روی آن انجام دهید ، متصل نمایید . برای این منظور یاید مقدار خاصیت ControlToValidate کنترل را برابر با شناسه ( Id ) کنترل کادر متن مورد نظر خود قرار دهید .
سپس دو حالت پیش می آید :
مقایسه مقدار کنترل کادر متن TextBox با یک کنترل کادر متن دوم :
در این حالت شما می خواهید مقدار کنترل کادر متن مورد نظر خود را با یک کنترل کادر متن دوم مقایسه نمایید . برای این منظور باید مقدار خاصیت ControlToCompare کنترل CompareValidator را برابر با Id کنترل کادر متن دوم قرار دهید .
مقایسه مقدار کنترل کادر متن با یک مقدار از پیش تعیین شده :
در این حالت شما می خواهید مقدار کنترل کادر متن مورد نظر خود را با یک مقدار از پیش تعیین شده ، مقایسه نمایید . برای این منظور باید مقدار خاصیت ValueToCompare کنترل CompareValidator را برابر با مقدار از پیش تعیین شده خود قرار دهید . برای مثال می خواهید مقدار کنترل کادر متن برابر با Tehran باشد .
سپس باید نوع داده ای که کنترل باید مقایسه نماید را تعیین کنید . برای مثال در مورد اسامی نوع داده ای متن ( String ) و برای رمز عبور معمولا نوع داده ای عددی ( Integer ) است . نوع داده ای در کنترل CompareValidator توسط خاصیت Type تعیین می شود و می تواند یکی از انواع String , Integer , Date , Boolen و یا Double باشد .
در نهایت نیز باید یک پیام اخطار جهت نمایش به کاربر تعیین کنید تا در صورت عدم یکسان بودن مقادیر ورودی ، به وی اخطار دهد . این پیام را توسط خاصیت ErrorMassage کنترل CompareValidator تعیین می کنید .
در جدول زیر موارد فوق و نحوه کلی کار با کنترل CompareValidator را به شما نمایش داده ایم :
حالت اول
< asp:CompareValidator ID=”CV_1″ runat=”server”
ErrorMessage = “متن پیام هشدار که در صورت یکسان نبودن مقادیر وارده به کاربر نمایش داده می شود “ |
حالت دوم
< asp:CompareValidator ID=”CV_1″ runat=”server” ErrorMessage = “متن پیام هشدار که در صورت یکسان نبودن مقادیر وارده به کاربر نمایش داده می شود “ ControlToValidate = ” کنترل کادر متنی که می خواهیم مقدار آن را کنترل نماییم شناسه ( ID ) شناسه” ValueToCompare = ” مقدار پیش فرضی که می خواهیم مقدار کنترل کادر متن با آن یکسان باشد “ Type = ” نوع داده ای عملیات اعتبار سنجی “ Text = “یک نشانه مثل * که توسط برنامه نویس تعیین می شود تا در صورت بروز خطا در کنار کادر متن نمایش داده شود” > < /asp:CompareValidator > |
مثال های عملی کنترل CompareValidator :
در مثال های عملی زیر ، نحوه استفاده از کنترل CompareValidator را در ۲ حالت مختلف به شما نشان داده ایم :
مثال شماره ۱ : مقایسه مقدار کنترل کادر متن با یک مقدار پیش فرض :
در این مثال کاربر باید در کادر متن مقدار ASP.Net را وارد نماید . در صورت وارد کردن مقدار صحیح کنترل بدون ایراد فرم را Submit می کند . اما در صورت وارد کردن مقدار به غیر از مقدار تعیین شده ، کنترل پیام هشدار به کاربر نشان می دهد . دقت کنید نوع داده ای را متن ( String ) تعیین کرده ایم .
Enter Your Plateform : < asp:TextBox ID = “TXT_1″ runat = ” server ” Width = ” 100px ” > < /asp:TextBox > < asp:CompareValidator ID = “CV_1″ runat = ” server “ ErrorMessage = ” مقدار متن را صحیح وارد نمایید “ ValueToCompare = “ASP.Net” Type=”String” ControlToValidate = “TXT_1 ” > </asp:CompareValidator>
|
مثال شماره ۲ : مقایسه مقدار کنترل کادر متن با یک کنترل کادر متن دیگر :
در این مثال کاربر باید مقدار رمز عبور خود را در ۲ کادر متن به ترتیب وارد نماید . وارد نمودن رمز در کادر متن دوم برای حصول اطمینان از درست وارد شدن رمز توسط کاربر است و باید مقدار وارد شده در هر ۲ کادر ، دقیقا یکسان باشد . این کار توسط کنترل ۷ انجام می شود . برای بررسی خروجی مثال ، مقادیر را در کادر های متن خروجی مثال وارد نمایید :
Enter Your Pass : < asp:TextBox ID = “Pass_1″ runat = ” server ” Width = ” 100px ” MaxLength=”5″ > < /asp:TextBox > Confirm Your Pass : < asp:TextBox ID = “Pass_2″ runat = ” server ” Width = ” 100px ” MaxLength=”5″ > < /asp:TextBox > < asp:CompareValidator ID = “CV_2″ runat = ” server “ ErrorMessage = ” مقدار متن در ۲ کنترل متفاوت است “ ControlToValidate = “Pass_1 ” > ControlToCompare = “Pass_2 ” > Type=”Integer” </asp:CompareValidator> |