אימות נתונים ב-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>


תוצאה


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>


תוצאה


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>


תוצאה


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>


תוצאה


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 עכשיו ביצענו בדיקה פשוטה של כמות התווים והחזרנו ערך בהתאם

תוצאה


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>


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