אימות נתונים ב-asp.net

‏ • 12 באפריל, 2004

ASP.NET הפכה את נושא אימות הנתונים להרבה יותר פשוט. במאמר זה אני נסביר על הדרכים האפשריות לאימות.

ישנם חמישה פקדי אימות בASP.NET :

Requiredfieldvalidator

פקד זה תפקידו לבדוק האם הוזנו נתונים או לא

אופן השימוש



1
2
3  

<asp:RequiredFieldValidator id="RequiredFieldValidator1"
        ControlToValidate="Textbox1" text="Cant be null"
        runat="server" />


לפקד זה יש שני מאפיינים חשובים

  • ControlToValidate- על מי יבצע את הבדיקה
  • text-מה ירשום כאשר השדה נשאר ריק

דוגמא לשימוש:



1
2
3
4
5
6  

<form runat=server>
   <asp:TextBox id=Textbox1 runat="server"/>
   <asp:RequiredFieldValidator id="RequiredFieldValidator1"
           ControlToValidate="Textbox1" text="*" runat="server" />
   <asp:Button id="Button1" runat="server" Text="Check" />
</form>


תוצאה

RangeValidator

מוודא שהוכנס קלט בין X ל Y כאשר ה-X וה-Y יכולים להיות תאריכים,מספרים ואותיות

אופן שימוש



1
2
3  

<asp:RangeValidator id="rangeValInteger" Type="XXX"
    ControlToValidate="textbox1" MaximumValue="#"
    MinimumValue="#" runat="server" text="Not valid!" />


לפקד זה יש ארבעה מאפיינים חשובים

  • Type- סוג הקלט שאמור לבדוק, לדוגמא:Integer למספרים Date לתאריכים ו String לאותיות
  • ControlToValidate- על מי יבצע את הבדירה
  • MinimumValue- הערך המינימלי שיוכל לקבל לדוגמא:1,a,1/1/1999
  • MaximumValue- הערך המקסימלי שיכול לקבל לדוגמא:10,z,30/12/2004

דוגמא לשימוש:



1
2
3
4
5
6
7
8
9
10
11
12
13  

<form runat=server>
    <asp:TextBox id=Textbox1 runat="server"/> (5 to 10 only)
    <asp:RangeValidator
        Type="Integer"
        id="rangeValInteger1"
        ControlToValidate="Textbox1"
        MaximumValue="10"
        MinimumValue="5"
        runat="server"
        text="Not valid!"
        />
    <asp:Button id="Button1" runat="server" Text="Check" />
</form>


תוצאה

RegularExpressionValidator

מוודא שהקלט שהוכנס מתאים למחרוזת שניתה לדוגמא:כתובת איימל,טלפון וכו'

אופן השימוש



1
2
3
4
5
6  

<asp:RegularExpressionValidator
    id="RegularExpressionValidator1"
    runat="server"
    ControlToValidate="TextBox1"
    ValidationExpression="XXXX"
/>


לפקד זה יש מאפיין חשוב אחד

  • ValidationExpression- סוג הקלט שיבדוק


דוגמא לשימוש:



1
2
3
4
5
6
7
8
9
10
11  

<form runat=server>
    <asp:TextBox id=Textbox1 runat="server"/> (Zip code)
    <asp:RegularExpressionValidator
        id="RegularExpressionValidator1"
        runat="server"
        ControlToValidate="TextBox1"
        ValidationExpression="^\d{5}$"
        text="Not valid!" />
    <asp:Button id="Button1" runat="server" Text="Check" />
</form>


תוצאה


\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*

כתובת אינטרנט –

http://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?

CompareValidator

תפקידו להשוות בין שני נתונים

אופן שימוש



1
2
3
4
5
6
7
8
9  

 <asp:CompareValidator
     id="CompareValidator1"
     text="xxx"
     ControlToValidate="textbox1"
     ControlToCompare = "textbox2"
     Type="XXX"
     operator="XXX"
     runat="server"
/>


לפקד זה יש ארבעה מאפיינים חשובים

  • Controltovalide- הערך המקורי שמושווה
  • ControlToCompare- שערך שאותו ישוו לערך המקורי
  • Type- סוג הנתונים שאמור לקבל
  • operator- סוג ההשוואה לדוגמא:גדול מ,שווה ל, וכו'

דוגמא לשימוש:



1
2
3
4
5
6
7
8
9
10
11
12
13
14  

<form runat=server>
    <asp:TextBox id=Textbox1 runat="server"/>
    <asp:TextBox id=Textbox2 runat="server"/>
    <asp:CompareValidator
     text="Not Valid!"
     id="CompareValidator1"
     ControlToValidate="textbox1"
     ControlToCompare="textbox2"
     Type="string"
     operator="equal"
     runat="server"
/>
    <asp:Button id="Button1" runat="server" Text="Compare" />
 </form>


תוצאה

CustomValidator

בודק ערך על פי קוד שכתבת בעצמך

אופן שימוש



1
2
3
4
5
6
7  

<asp:CustomValidator
    id="CustomValidator1"
    runat="server"
    ControlToValidate="Textbox1"
    OnServerValidate="XXX"
    text="xxx"
/>


לפקד זה יש מאפיין חשוב יחיד

  • OnServerValidate- זו השגרה שבה נרשום את הקוד הרצוי לבדיקה

דוגמא לשימוש:



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20  

<script runat=server>
sub validate_textbox1(obj as Object, args as ServerValidateEventArgs)
   if len(args.Value) > 9 then
      args.IsValid = false
   else
      args.IsValid = true
   end if
end sub
</script>
<form runat=server>
    <asp:TextBox id=Textbox1 runat="server"/> (No more then 9 chars)
    <asp:CustomValidator
     id="CustomValidator1"
     runat="server"
     ControlToValidate="Textbox1"
     OnServerValidate="validate_textbox1"
     text="Not valid!"
/>
    <asp:Button id="Button1" runat="server" Text="Check" />
</form>


הסבר


הפרמטר args הוא אובייקט מסוג ServerValidateEventArgs והוא מכיל בעצם את הtext של textbox1 עכשיו ביצענו בדיקה פשוטה של כמות התווים והחזרנו ערך בהתאם

תוצאה

ValidationSummary

פקד נועד לאסוף את כל השגיות ולהציגם במרוכז
אופן שימוש



1
2
3
4
5
6  

<asp:ValidationSummary
   ID="ValidationSummary1"
   runat="server"
   HeaderText="XXXX"
   Displaymode=XXX
/>


לפקד זה שתי תכונות חשובות:

  • Headertext- הטקסט שיוצג בראש השגיאות
  • Displaymode- איך יוצגו השגיאות

אפשרויות לדרך התצוגה של סיכום השגיאות:

  • SingleParagraph-מראה את השגיאות אחת אחרי השנייה
  • BulletList-מראה רשימה ונקודה ליד כל שגיאה (ברירת מחדל)
  • List-רשימה ללא נקודה ליד כל שגיאה

*בשביל להציג תיבת דו שיח עם השגיאות יש להוסיף: ShowMessageBox="True"

דוגמא לשימוש ללא תיבת דו שיח



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24  

<form runat=server>
    User Name:<asp:TextBox id=Textbox1 runat="server"/>
    <asp:RequiredFieldValidator
     id="RequiredFieldValidator1"
     ControlToValidate="Textbox1"
     errormessage="Name is Required"
     text="*" runat="server"
    />
    Password:<asp:TextBox id=Textbox2 runat="server"/>
    <asp:RequiredFieldValidator
     id="RequiredFieldValidator2"
     ControlToValidate="Textbox2"
     errormessage="Password is Required"
     text="*" runat="server"
    />
   <hr>
   <asp:ValidationSummary
      ID="ValidationSummary1"
     runat="server"
     HeaderText="There are errors in the page!"
   />
    <asp:Button id="Button1" runat="server" Text="Check" />
</form>






1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24  

<form runat=server>
    User Name:<asp:TextBox id=Textbox1 runat="server"/>
    <asp:RequiredFieldValidator
     id="RequiredFieldValidator1"
     ControlToValidate="Textbox1"
     errormessage="Name is Required"
     text="*" runat="server"
    />
    Password:<asp:TextBox id=Textbox2 runat="server"/>
    <asp:RequiredFieldValidator
     id="RequiredFieldValidator2"
     ControlToValidate="Textbox2"
     errormessage="Password is Required"
     text="*" runat="server"
    />
   <hr>
   <asp:ValidationSummary
      showmessagebox=true
     ID="ValidationSummary1"
     runat="server"
     HeaderText="There are errors in the page!"
   />
    <asp:Button id="Button1" runat="server" Text="Check" />
</form>


תגיות: , , ,

תגובות בפייסבוק