ASP.NET מבוא ל 3 ' מצגת מס ASP.NET מבוא ל : 3 שיעור  www.doronamir.com MCSD DORON AMIR Web Forms Web Form  מאפשר ל asp.net לספק.

Download Report

Transcript ASP.NET מבוא ל 3 ' מצגת מס ASP.NET מבוא ל : 3 שיעור  www.doronamir.com MCSD DORON AMIR Web Forms Web Form  מאפשר ל asp.net לספק.

Slide 1

ASP.NET ‫מבוא ל‬
3 '‫מצגת מס‬

ASP.NET ‫ מבוא ל‬: 3 ‫ שיעור‬

www.doronamir.com
MCSD DORON AMIR

‫‪Web Forms‬‬

‫‪ Web Form ‬מאפשר ל ‪ asp.net‬לספק בקרה על‬
‫ממשק המשתמש ע"י אובייקטים הנמצאים בשרת‬

‫‪HTML FORMS‬‬
‫‪ ‬מודל ‪Request \ Response‬‬
‫‪ HTML ‬בנוי מפריטים המרכיבים את ממשק המשתמש‬
‫‪ HTML ‬מבוסס על צד הלקוח ‪Client-Based :‬‬
‫‪ ‬רק כאשר מתבצע ‪ SUBMIT‬נשלחים הנתונים‬
‫‪ ‬השרת אינו יודע כיצד נראה הטופס‬
‫‪ ‬השרת אינו יודע לאיזה סוג נתונים לצפות‬
‫‪Client‬‬

‫‪SERVER‬‬

‫‪POST DATA‬‬

‫‪Web Forms‬‬
‫‪ ‬בניגוד ל ‪ HTML‬ה ‪ Web Forms‬מבוססי שרת‬
‫‪ ‬האלמנטים עבור המשתמש נוצרים בשרת‬
‫‪ ‬השרת יודע כיצד הטופס נראה‬
‫‪ ‬השרת מודע לפונקציונליות הטופס‬
‫‪ ‬השרת מודע לסוגי הנתונים הנשלחים מהטופס‬

‫‪Server Controls‬‬
‫‪ ‬פקדי שרת‬
‫‪ ‬מייצגים חלק ממשק המשתמש ‪UI‬‬
‫‪ ‬אובייטים הניתנים לשליטה מלאה בצד השרת‬
‫‪ ‬מכילים אירועים ‪ ,‬מאפיינים ‪ ,‬שיטות ‪..‬‬
‫‪ ‬בעת בקשה מהלקוח ‪ asp.net ,‬ממירה פקדים‬
‫אלה ל ‪ HTML‬המותאם לסוג הדפדפן‬
‫תמיכה ברמה הנמוכה ‪Down Level Support‬‬

‫‪Event-Driven‬‬
‫‪ ‬מתבסס על מודל ‪Request \ Response‬‬
‫‪ ‬מספק סביבה אינטואיטיבית‬
‫‪ ‬הפקדים מודיעים לשרת ברגע שמשהו מתרחש‬
‫‪ ‬הלקוח שולח מידע לשרת גם ללא ידעת המשתמש‬
‫‪ ‬השרת יוצר את הפקדים ולכן זוכר את הערכים‬
‫‪ ‬שימוש אוטומטי בשדות נסתרים מאפשרים לשרת‬
‫לזכור את מצב התצוגה של כל פקד‬

Server Control Type
HTML
WEB
Validation
USER

Server
Server
Server
Server

Controls 
Controls 
Controls 
Controls 

‫‪HTML\WEB Server Controls‬‬
‫‪HTML ‬‬
‫‪ ‬ייצוג עבור האלמנטים הרגילים ב ‪HTML‬‬
‫‪ ‬נמצאים בצד השרת‬
‫‪WEB ‬‬
‫‪ ‬מספקים פונקציונליות גבוהה יותר‬
‫‪ ‬מציגים ממשקי משתמש מורכבים‬

‫‪Validation\User Server Controls‬‬
‫‪Validation‬‬
‫‪ ‬בדיקת נתוני המשתמש‬
‫‪ ‬טווח ‪ ,‬ביטוי ‪ ,‬נתוני חובה ‪ ,‬סיכום שגיאות ‪...‬‬
‫‪USER‬‬
‫‪ ‬פקדים המותאמים אישית לפי רצון המשתמש‬

‫אירוע אקטיבי \ פסיבי‬
‫אירוע אקטיבי‬
‫‪ ‬מחייב פעולה מפורשת של המשתמש‬
‫‪ ‬הפעולה מבוצעת במתכוון‬
‫‪ ‬לחיצה על קישור‪ ,‬לחצן ‪ ,‬הזנת טקסט ‪...‬‬
‫‪ ‬רק אירועים אקטיביים מטופלים בשרת‬
‫אירוע פסיבי ‪:‬‬
‫מתרחש שלא במתכוון‬
‫הזזת עכבר ‪ ,‬גרירת תמונה ‪...‬‬
‫אירועים פסיבים מתרחשים בתדירות גבוהה מאד‬
‫לכן הם מטופלים בצד הלקוח ‪JavaScript -‬‬

‫‪Events‬‬
‫‪‬‬
‫‪‬‬

‫לפקדי שרת אירועים רבים‬
‫בכל התרחשות אירוע הלקוח שולח נתונים לשרת‬

‫אירעים נשלחים לשרת בשתי דרכים ‪:‬‬
‫‪ .1‬אירוע מופעל ‪ ‬מייד ברגע ההתרחשות‬
‫‪ .2‬אירוע מופעל ‪ ‬במשלוח יחיד ( או קבוצה ) ‪Submit‬‬

‫רשימת הפרמטרים הסטנדרטית עבור אירוע‬
‫ יתרחש‬CLICK ‫כאשר האירוע‬
‫שיטה זו תופעל בצד השרת‬

‫מייצגים נתונים הנכללים במשלוח‬
‫ האובייקט הקורא לשיטה‬: Obj

<script runat="server">

‫ מידע נוסף‬: E

Sub Button1_Click(obj as object, e as EventArgs)
Label1.Text = "You clicked " & obj.Text & ""
end Sub


‫יציג את הטקסט השרשום על הפקד‬
Button1 : ‫שקרא לשיטה‬


runat="server" Text="Button1" onClick="Button1_Click" />

Obj.Text

‫‪View State‬‬
‫‪ ‬טפסי ‪ WEB‬שומרים את מצב התצוגה ע"י שדות‬
‫נסתרים המיוצרים אוטומטית‬
‫‪State bag ‬‬
‫‪ ‬דרך נוספת לשמירת מידע היא ‪State bag‬‬
‫‪ ‬משתמש לשמירת ערכים שהמשתמש לא הזין כמו‬
‫תוצאת חישוב שהתקבלה ויש לשמור אותה‬

State Bag
ViewState("StartTime") = DateTime.Now

Sub Page_Load(obj as object, e as EventArgs)
if not Page.IsPostBack then
ViewState("StartTime") = DateTime.Now
lblMessage.Text = "Time is now: " & ViewState("StartTime")

end if
end sub
State Bag ‫ הזמן ותאריך הבקשה יאוחסנו ב‬: ‫בפעם הראשונה‬
‫הערך ישמר למרות בקשות שונות שיתרחשו‬

State Bag
‫ שולח את הנתונים ומוכיח כי ערך‬SUBMIT ‫ביצוע‬

‫ נשמר‬State Bag ‫ה‬
Sub Submit(obj as object, e as EventArgs)
lblMessage.Text = "The time is now: " & DateTime.Now & _
"
started at: " & ViewState("StartTime")
end Sub

‫ זמן טעינת הדף לראשונה‬+ ‫יודפס הערך של הזמן הנוכחי‬
‫האובייקט מתרוקן כאשר המשתמש עוזב את הדף‬

‫‪State Bag‬‬

‫הזמן בכל לחיצה על ‪Submit‬‬

‫רק כאשר הדף נטען לראשונה ‪Stae Bag‬‬

‫סדר פעולות כללי‬
‫‪.1‬‬
‫‪.2‬‬
‫‪.3‬‬

‫‪.4‬‬
‫‪.5‬‬
‫‪.6‬‬
‫‪.7‬‬

‫לקוח מבקש טופס‬
‫השרת מייצר קוד ‪HTML‬‬
‫‪ Page_Load‬מתרחש‬
‫השרת שולח את הטופס‬
‫קריאה לשיטות המטפלות באירועים‬
‫לקוח עוזב את הדף‬
‫‪ Page_Unload‬משחרר כל זיכרון שאין בו צורך‬

‫‪AutoPostBack‬‬
‫‪ ‬משלוח מיידי של נתונים בעת התרחשות האירוע‬

AutoPostBack

‫‪AutoPostBack‬‬

‫הטיפול באירועים‬

'‫סיכום חלק א‬
‫ מאפשרים לשרת לעקוב אחר‬Web ‫ טפסי‬
‫המשתמש‬
‫ סוגי פקדים‬4 ‫ מורכבים מ‬WEB ‫ טפסי‬
USER\Validation\WEB\HTML 
runat=server ‫ הסבת פקד ישן‬
Event 
State Bag 
AutoPostBack 

ASP.NET ‫מבוא ל‬
3 '‫מצגת מס‬

ASP.NET ‫ מבוא ל‬: 3 ‫ שיעור‬

www.doronamir.com
MCSD DORON AMIR


Slide 2

ASP.NET ‫מבוא ל‬
3 '‫מצגת מס‬

ASP.NET ‫ מבוא ל‬: 3 ‫ שיעור‬

www.doronamir.com
MCSD DORON AMIR

‫‪Web Forms‬‬

‫‪ Web Form ‬מאפשר ל ‪ asp.net‬לספק בקרה על‬
‫ממשק המשתמש ע"י אובייקטים הנמצאים בשרת‬

‫‪HTML FORMS‬‬
‫‪ ‬מודל ‪Request \ Response‬‬
‫‪ HTML ‬בנוי מפריטים המרכיבים את ממשק המשתמש‬
‫‪ HTML ‬מבוסס על צד הלקוח ‪Client-Based :‬‬
‫‪ ‬רק כאשר מתבצע ‪ SUBMIT‬נשלחים הנתונים‬
‫‪ ‬השרת אינו יודע כיצד נראה הטופס‬
‫‪ ‬השרת אינו יודע לאיזה סוג נתונים לצפות‬
‫‪Client‬‬

‫‪SERVER‬‬

‫‪POST DATA‬‬

‫‪Web Forms‬‬
‫‪ ‬בניגוד ל ‪ HTML‬ה ‪ Web Forms‬מבוססי שרת‬
‫‪ ‬האלמנטים עבור המשתמש נוצרים בשרת‬
‫‪ ‬השרת יודע כיצד הטופס נראה‬
‫‪ ‬השרת מודע לפונקציונליות הטופס‬
‫‪ ‬השרת מודע לסוגי הנתונים הנשלחים מהטופס‬

‫‪Server Controls‬‬
‫‪ ‬פקדי שרת‬
‫‪ ‬מייצגים חלק ממשק המשתמש ‪UI‬‬
‫‪ ‬אובייטים הניתנים לשליטה מלאה בצד השרת‬
‫‪ ‬מכילים אירועים ‪ ,‬מאפיינים ‪ ,‬שיטות ‪..‬‬
‫‪ ‬בעת בקשה מהלקוח ‪ asp.net ,‬ממירה פקדים‬
‫אלה ל ‪ HTML‬המותאם לסוג הדפדפן‬
‫תמיכה ברמה הנמוכה ‪Down Level Support‬‬

‫‪Event-Driven‬‬
‫‪ ‬מתבסס על מודל ‪Request \ Response‬‬
‫‪ ‬מספק סביבה אינטואיטיבית‬
‫‪ ‬הפקדים מודיעים לשרת ברגע שמשהו מתרחש‬
‫‪ ‬הלקוח שולח מידע לשרת גם ללא ידעת המשתמש‬
‫‪ ‬השרת יוצר את הפקדים ולכן זוכר את הערכים‬
‫‪ ‬שימוש אוטומטי בשדות נסתרים מאפשרים לשרת‬
‫לזכור את מצב התצוגה של כל פקד‬

Server Control Type
HTML
WEB
Validation
USER

Server
Server
Server
Server

Controls 
Controls 
Controls 
Controls 

‫‪HTML\WEB Server Controls‬‬
‫‪HTML ‬‬
‫‪ ‬ייצוג עבור האלמנטים הרגילים ב ‪HTML‬‬
‫‪ ‬נמצאים בצד השרת‬
‫‪WEB ‬‬
‫‪ ‬מספקים פונקציונליות גבוהה יותר‬
‫‪ ‬מציגים ממשקי משתמש מורכבים‬

‫‪Validation\User Server Controls‬‬
‫‪Validation‬‬
‫‪ ‬בדיקת נתוני המשתמש‬
‫‪ ‬טווח ‪ ,‬ביטוי ‪ ,‬נתוני חובה ‪ ,‬סיכום שגיאות ‪...‬‬
‫‪USER‬‬
‫‪ ‬פקדים המותאמים אישית לפי רצון המשתמש‬

‫אירוע אקטיבי \ פסיבי‬
‫אירוע אקטיבי‬
‫‪ ‬מחייב פעולה מפורשת של המשתמש‬
‫‪ ‬הפעולה מבוצעת במתכוון‬
‫‪ ‬לחיצה על קישור‪ ,‬לחצן ‪ ,‬הזנת טקסט ‪...‬‬
‫‪ ‬רק אירועים אקטיביים מטופלים בשרת‬
‫אירוע פסיבי ‪:‬‬
‫מתרחש שלא במתכוון‬
‫הזזת עכבר ‪ ,‬גרירת תמונה ‪...‬‬
‫אירועים פסיבים מתרחשים בתדירות גבוהה מאד‬
‫לכן הם מטופלים בצד הלקוח ‪JavaScript -‬‬

‫‪Events‬‬
‫‪‬‬
‫‪‬‬

‫לפקדי שרת אירועים רבים‬
‫בכל התרחשות אירוע הלקוח שולח נתונים לשרת‬

‫אירעים נשלחים לשרת בשתי דרכים ‪:‬‬
‫‪ .1‬אירוע מופעל ‪ ‬מייד ברגע ההתרחשות‬
‫‪ .2‬אירוע מופעל ‪ ‬במשלוח יחיד ( או קבוצה ) ‪Submit‬‬

‫רשימת הפרמטרים הסטנדרטית עבור אירוע‬
‫ יתרחש‬CLICK ‫כאשר האירוע‬
‫שיטה זו תופעל בצד השרת‬

‫מייצגים נתונים הנכללים במשלוח‬
‫ האובייקט הקורא לשיטה‬: Obj

<script runat="server">

‫ מידע נוסף‬: E

Sub Button1_Click(obj as object, e as EventArgs)
Label1.Text = "You clicked " & obj.Text & ""
end Sub


‫יציג את הטקסט השרשום על הפקד‬
Button1 : ‫שקרא לשיטה‬


runat="server" Text="Button1" onClick="Button1_Click" />

Obj.Text

‫‪View State‬‬
‫‪ ‬טפסי ‪ WEB‬שומרים את מצב התצוגה ע"י שדות‬
‫נסתרים המיוצרים אוטומטית‬
‫‪State bag ‬‬
‫‪ ‬דרך נוספת לשמירת מידע היא ‪State bag‬‬
‫‪ ‬משתמש לשמירת ערכים שהמשתמש לא הזין כמו‬
‫תוצאת חישוב שהתקבלה ויש לשמור אותה‬

State Bag
ViewState("StartTime") = DateTime.Now

Sub Page_Load(obj as object, e as EventArgs)
if not Page.IsPostBack then
ViewState("StartTime") = DateTime.Now
lblMessage.Text = "Time is now: " & ViewState("StartTime")

end if
end sub
State Bag ‫ הזמן ותאריך הבקשה יאוחסנו ב‬: ‫בפעם הראשונה‬
‫הערך ישמר למרות בקשות שונות שיתרחשו‬

State Bag
‫ שולח את הנתונים ומוכיח כי ערך‬SUBMIT ‫ביצוע‬

‫ נשמר‬State Bag ‫ה‬
Sub Submit(obj as object, e as EventArgs)
lblMessage.Text = "The time is now: " & DateTime.Now & _
"
started at: " & ViewState("StartTime")
end Sub

‫ זמן טעינת הדף לראשונה‬+ ‫יודפס הערך של הזמן הנוכחי‬
‫האובייקט מתרוקן כאשר המשתמש עוזב את הדף‬

‫‪State Bag‬‬

‫הזמן בכל לחיצה על ‪Submit‬‬

‫רק כאשר הדף נטען לראשונה ‪Stae Bag‬‬

‫סדר פעולות כללי‬
‫‪.1‬‬
‫‪.2‬‬
‫‪.3‬‬

‫‪.4‬‬
‫‪.5‬‬
‫‪.6‬‬
‫‪.7‬‬

‫לקוח מבקש טופס‬
‫השרת מייצר קוד ‪HTML‬‬
‫‪ Page_Load‬מתרחש‬
‫השרת שולח את הטופס‬
‫קריאה לשיטות המטפלות באירועים‬
‫לקוח עוזב את הדף‬
‫‪ Page_Unload‬משחרר כל זיכרון שאין בו צורך‬

‫‪AutoPostBack‬‬
‫‪ ‬משלוח מיידי של נתונים בעת התרחשות האירוע‬

AutoPostBack

‫‪AutoPostBack‬‬

‫הטיפול באירועים‬

'‫סיכום חלק א‬
‫ מאפשרים לשרת לעקוב אחר‬Web ‫ טפסי‬
‫המשתמש‬
‫ סוגי פקדים‬4 ‫ מורכבים מ‬WEB ‫ טפסי‬
USER\Validation\WEB\HTML 
runat=server ‫ הסבת פקד ישן‬
Event 
State Bag 
AutoPostBack 

ASP.NET ‫מבוא ל‬
3 '‫מצגת מס‬

ASP.NET ‫ מבוא ל‬: 3 ‫ שיעור‬

www.doronamir.com
MCSD DORON AMIR


Slide 3

ASP.NET ‫מבוא ל‬
3 '‫מצגת מס‬

ASP.NET ‫ מבוא ל‬: 3 ‫ שיעור‬

www.doronamir.com
MCSD DORON AMIR

‫‪Web Forms‬‬

‫‪ Web Form ‬מאפשר ל ‪ asp.net‬לספק בקרה על‬
‫ממשק המשתמש ע"י אובייקטים הנמצאים בשרת‬

‫‪HTML FORMS‬‬
‫‪ ‬מודל ‪Request \ Response‬‬
‫‪ HTML ‬בנוי מפריטים המרכיבים את ממשק המשתמש‬
‫‪ HTML ‬מבוסס על צד הלקוח ‪Client-Based :‬‬
‫‪ ‬רק כאשר מתבצע ‪ SUBMIT‬נשלחים הנתונים‬
‫‪ ‬השרת אינו יודע כיצד נראה הטופס‬
‫‪ ‬השרת אינו יודע לאיזה סוג נתונים לצפות‬
‫‪Client‬‬

‫‪SERVER‬‬

‫‪POST DATA‬‬

‫‪Web Forms‬‬
‫‪ ‬בניגוד ל ‪ HTML‬ה ‪ Web Forms‬מבוססי שרת‬
‫‪ ‬האלמנטים עבור המשתמש נוצרים בשרת‬
‫‪ ‬השרת יודע כיצד הטופס נראה‬
‫‪ ‬השרת מודע לפונקציונליות הטופס‬
‫‪ ‬השרת מודע לסוגי הנתונים הנשלחים מהטופס‬

‫‪Server Controls‬‬
‫‪ ‬פקדי שרת‬
‫‪ ‬מייצגים חלק ממשק המשתמש ‪UI‬‬
‫‪ ‬אובייטים הניתנים לשליטה מלאה בצד השרת‬
‫‪ ‬מכילים אירועים ‪ ,‬מאפיינים ‪ ,‬שיטות ‪..‬‬
‫‪ ‬בעת בקשה מהלקוח ‪ asp.net ,‬ממירה פקדים‬
‫אלה ל ‪ HTML‬המותאם לסוג הדפדפן‬
‫תמיכה ברמה הנמוכה ‪Down Level Support‬‬

‫‪Event-Driven‬‬
‫‪ ‬מתבסס על מודל ‪Request \ Response‬‬
‫‪ ‬מספק סביבה אינטואיטיבית‬
‫‪ ‬הפקדים מודיעים לשרת ברגע שמשהו מתרחש‬
‫‪ ‬הלקוח שולח מידע לשרת גם ללא ידעת המשתמש‬
‫‪ ‬השרת יוצר את הפקדים ולכן זוכר את הערכים‬
‫‪ ‬שימוש אוטומטי בשדות נסתרים מאפשרים לשרת‬
‫לזכור את מצב התצוגה של כל פקד‬

Server Control Type
HTML
WEB
Validation
USER

Server
Server
Server
Server

Controls 
Controls 
Controls 
Controls 

‫‪HTML\WEB Server Controls‬‬
‫‪HTML ‬‬
‫‪ ‬ייצוג עבור האלמנטים הרגילים ב ‪HTML‬‬
‫‪ ‬נמצאים בצד השרת‬
‫‪WEB ‬‬
‫‪ ‬מספקים פונקציונליות גבוהה יותר‬
‫‪ ‬מציגים ממשקי משתמש מורכבים‬

‫‪Validation\User Server Controls‬‬
‫‪Validation‬‬
‫‪ ‬בדיקת נתוני המשתמש‬
‫‪ ‬טווח ‪ ,‬ביטוי ‪ ,‬נתוני חובה ‪ ,‬סיכום שגיאות ‪...‬‬
‫‪USER‬‬
‫‪ ‬פקדים המותאמים אישית לפי רצון המשתמש‬

‫אירוע אקטיבי \ פסיבי‬
‫אירוע אקטיבי‬
‫‪ ‬מחייב פעולה מפורשת של המשתמש‬
‫‪ ‬הפעולה מבוצעת במתכוון‬
‫‪ ‬לחיצה על קישור‪ ,‬לחצן ‪ ,‬הזנת טקסט ‪...‬‬
‫‪ ‬רק אירועים אקטיביים מטופלים בשרת‬
‫אירוע פסיבי ‪:‬‬
‫מתרחש שלא במתכוון‬
‫הזזת עכבר ‪ ,‬גרירת תמונה ‪...‬‬
‫אירועים פסיבים מתרחשים בתדירות גבוהה מאד‬
‫לכן הם מטופלים בצד הלקוח ‪JavaScript -‬‬

‫‪Events‬‬
‫‪‬‬
‫‪‬‬

‫לפקדי שרת אירועים רבים‬
‫בכל התרחשות אירוע הלקוח שולח נתונים לשרת‬

‫אירעים נשלחים לשרת בשתי דרכים ‪:‬‬
‫‪ .1‬אירוע מופעל ‪ ‬מייד ברגע ההתרחשות‬
‫‪ .2‬אירוע מופעל ‪ ‬במשלוח יחיד ( או קבוצה ) ‪Submit‬‬

‫רשימת הפרמטרים הסטנדרטית עבור אירוע‬
‫ יתרחש‬CLICK ‫כאשר האירוע‬
‫שיטה זו תופעל בצד השרת‬

‫מייצגים נתונים הנכללים במשלוח‬
‫ האובייקט הקורא לשיטה‬: Obj

<script runat="server">

‫ מידע נוסף‬: E

Sub Button1_Click(obj as object, e as EventArgs)
Label1.Text = "You clicked " & obj.Text & ""
end Sub


‫יציג את הטקסט השרשום על הפקד‬
Button1 : ‫שקרא לשיטה‬


runat="server" Text="Button1" onClick="Button1_Click" />

Obj.Text

‫‪View State‬‬
‫‪ ‬טפסי ‪ WEB‬שומרים את מצב התצוגה ע"י שדות‬
‫נסתרים המיוצרים אוטומטית‬
‫‪State bag ‬‬
‫‪ ‬דרך נוספת לשמירת מידע היא ‪State bag‬‬
‫‪ ‬משתמש לשמירת ערכים שהמשתמש לא הזין כמו‬
‫תוצאת חישוב שהתקבלה ויש לשמור אותה‬

State Bag
ViewState("StartTime") = DateTime.Now

Sub Page_Load(obj as object, e as EventArgs)
if not Page.IsPostBack then
ViewState("StartTime") = DateTime.Now
lblMessage.Text = "Time is now: " & ViewState("StartTime")

end if
end sub
State Bag ‫ הזמן ותאריך הבקשה יאוחסנו ב‬: ‫בפעם הראשונה‬
‫הערך ישמר למרות בקשות שונות שיתרחשו‬

State Bag
‫ שולח את הנתונים ומוכיח כי ערך‬SUBMIT ‫ביצוע‬

‫ נשמר‬State Bag ‫ה‬
Sub Submit(obj as object, e as EventArgs)
lblMessage.Text = "The time is now: " & DateTime.Now & _
"
started at: " & ViewState("StartTime")
end Sub

‫ זמן טעינת הדף לראשונה‬+ ‫יודפס הערך של הזמן הנוכחי‬
‫האובייקט מתרוקן כאשר המשתמש עוזב את הדף‬

‫‪State Bag‬‬

‫הזמן בכל לחיצה על ‪Submit‬‬

‫רק כאשר הדף נטען לראשונה ‪Stae Bag‬‬

‫סדר פעולות כללי‬
‫‪.1‬‬
‫‪.2‬‬
‫‪.3‬‬

‫‪.4‬‬
‫‪.5‬‬
‫‪.6‬‬
‫‪.7‬‬

‫לקוח מבקש טופס‬
‫השרת מייצר קוד ‪HTML‬‬
‫‪ Page_Load‬מתרחש‬
‫השרת שולח את הטופס‬
‫קריאה לשיטות המטפלות באירועים‬
‫לקוח עוזב את הדף‬
‫‪ Page_Unload‬משחרר כל זיכרון שאין בו צורך‬

‫‪AutoPostBack‬‬
‫‪ ‬משלוח מיידי של נתונים בעת התרחשות האירוע‬

AutoPostBack

‫‪AutoPostBack‬‬

‫הטיפול באירועים‬

'‫סיכום חלק א‬
‫ מאפשרים לשרת לעקוב אחר‬Web ‫ טפסי‬
‫המשתמש‬
‫ סוגי פקדים‬4 ‫ מורכבים מ‬WEB ‫ טפסי‬
USER\Validation\WEB\HTML 
runat=server ‫ הסבת פקד ישן‬
Event 
State Bag 
AutoPostBack 

ASP.NET ‫מבוא ל‬
3 '‫מצגת מס‬

ASP.NET ‫ מבוא ל‬: 3 ‫ שיעור‬

www.doronamir.com
MCSD DORON AMIR


Slide 4

ASP.NET ‫מבוא ל‬
3 '‫מצגת מס‬

ASP.NET ‫ מבוא ל‬: 3 ‫ שיעור‬

www.doronamir.com
MCSD DORON AMIR

‫‪Web Forms‬‬

‫‪ Web Form ‬מאפשר ל ‪ asp.net‬לספק בקרה על‬
‫ממשק המשתמש ע"י אובייקטים הנמצאים בשרת‬

‫‪HTML FORMS‬‬
‫‪ ‬מודל ‪Request \ Response‬‬
‫‪ HTML ‬בנוי מפריטים המרכיבים את ממשק המשתמש‬
‫‪ HTML ‬מבוסס על צד הלקוח ‪Client-Based :‬‬
‫‪ ‬רק כאשר מתבצע ‪ SUBMIT‬נשלחים הנתונים‬
‫‪ ‬השרת אינו יודע כיצד נראה הטופס‬
‫‪ ‬השרת אינו יודע לאיזה סוג נתונים לצפות‬
‫‪Client‬‬

‫‪SERVER‬‬

‫‪POST DATA‬‬

‫‪Web Forms‬‬
‫‪ ‬בניגוד ל ‪ HTML‬ה ‪ Web Forms‬מבוססי שרת‬
‫‪ ‬האלמנטים עבור המשתמש נוצרים בשרת‬
‫‪ ‬השרת יודע כיצד הטופס נראה‬
‫‪ ‬השרת מודע לפונקציונליות הטופס‬
‫‪ ‬השרת מודע לסוגי הנתונים הנשלחים מהטופס‬

‫‪Server Controls‬‬
‫‪ ‬פקדי שרת‬
‫‪ ‬מייצגים חלק ממשק המשתמש ‪UI‬‬
‫‪ ‬אובייטים הניתנים לשליטה מלאה בצד השרת‬
‫‪ ‬מכילים אירועים ‪ ,‬מאפיינים ‪ ,‬שיטות ‪..‬‬
‫‪ ‬בעת בקשה מהלקוח ‪ asp.net ,‬ממירה פקדים‬
‫אלה ל ‪ HTML‬המותאם לסוג הדפדפן‬
‫תמיכה ברמה הנמוכה ‪Down Level Support‬‬

‫‪Event-Driven‬‬
‫‪ ‬מתבסס על מודל ‪Request \ Response‬‬
‫‪ ‬מספק סביבה אינטואיטיבית‬
‫‪ ‬הפקדים מודיעים לשרת ברגע שמשהו מתרחש‬
‫‪ ‬הלקוח שולח מידע לשרת גם ללא ידעת המשתמש‬
‫‪ ‬השרת יוצר את הפקדים ולכן זוכר את הערכים‬
‫‪ ‬שימוש אוטומטי בשדות נסתרים מאפשרים לשרת‬
‫לזכור את מצב התצוגה של כל פקד‬

Server Control Type
HTML
WEB
Validation
USER

Server
Server
Server
Server

Controls 
Controls 
Controls 
Controls 

‫‪HTML\WEB Server Controls‬‬
‫‪HTML ‬‬
‫‪ ‬ייצוג עבור האלמנטים הרגילים ב ‪HTML‬‬
‫‪ ‬נמצאים בצד השרת‬
‫‪WEB ‬‬
‫‪ ‬מספקים פונקציונליות גבוהה יותר‬
‫‪ ‬מציגים ממשקי משתמש מורכבים‬

‫‪Validation\User Server Controls‬‬
‫‪Validation‬‬
‫‪ ‬בדיקת נתוני המשתמש‬
‫‪ ‬טווח ‪ ,‬ביטוי ‪ ,‬נתוני חובה ‪ ,‬סיכום שגיאות ‪...‬‬
‫‪USER‬‬
‫‪ ‬פקדים המותאמים אישית לפי רצון המשתמש‬

‫אירוע אקטיבי \ פסיבי‬
‫אירוע אקטיבי‬
‫‪ ‬מחייב פעולה מפורשת של המשתמש‬
‫‪ ‬הפעולה מבוצעת במתכוון‬
‫‪ ‬לחיצה על קישור‪ ,‬לחצן ‪ ,‬הזנת טקסט ‪...‬‬
‫‪ ‬רק אירועים אקטיביים מטופלים בשרת‬
‫אירוע פסיבי ‪:‬‬
‫מתרחש שלא במתכוון‬
‫הזזת עכבר ‪ ,‬גרירת תמונה ‪...‬‬
‫אירועים פסיבים מתרחשים בתדירות גבוהה מאד‬
‫לכן הם מטופלים בצד הלקוח ‪JavaScript -‬‬

‫‪Events‬‬
‫‪‬‬
‫‪‬‬

‫לפקדי שרת אירועים רבים‬
‫בכל התרחשות אירוע הלקוח שולח נתונים לשרת‬

‫אירעים נשלחים לשרת בשתי דרכים ‪:‬‬
‫‪ .1‬אירוע מופעל ‪ ‬מייד ברגע ההתרחשות‬
‫‪ .2‬אירוע מופעל ‪ ‬במשלוח יחיד ( או קבוצה ) ‪Submit‬‬

‫רשימת הפרמטרים הסטנדרטית עבור אירוע‬
‫ יתרחש‬CLICK ‫כאשר האירוע‬
‫שיטה זו תופעל בצד השרת‬

‫מייצגים נתונים הנכללים במשלוח‬
‫ האובייקט הקורא לשיטה‬: Obj

<script runat="server">

‫ מידע נוסף‬: E

Sub Button1_Click(obj as object, e as EventArgs)
Label1.Text = "You clicked " & obj.Text & ""
end Sub


‫יציג את הטקסט השרשום על הפקד‬
Button1 : ‫שקרא לשיטה‬


runat="server" Text="Button1" onClick="Button1_Click" />

Obj.Text

‫‪View State‬‬
‫‪ ‬טפסי ‪ WEB‬שומרים את מצב התצוגה ע"י שדות‬
‫נסתרים המיוצרים אוטומטית‬
‫‪State bag ‬‬
‫‪ ‬דרך נוספת לשמירת מידע היא ‪State bag‬‬
‫‪ ‬משתמש לשמירת ערכים שהמשתמש לא הזין כמו‬
‫תוצאת חישוב שהתקבלה ויש לשמור אותה‬

State Bag
ViewState("StartTime") = DateTime.Now

Sub Page_Load(obj as object, e as EventArgs)
if not Page.IsPostBack then
ViewState("StartTime") = DateTime.Now
lblMessage.Text = "Time is now: " & ViewState("StartTime")

end if
end sub
State Bag ‫ הזמן ותאריך הבקשה יאוחסנו ב‬: ‫בפעם הראשונה‬
‫הערך ישמר למרות בקשות שונות שיתרחשו‬

State Bag
‫ שולח את הנתונים ומוכיח כי ערך‬SUBMIT ‫ביצוע‬

‫ נשמר‬State Bag ‫ה‬
Sub Submit(obj as object, e as EventArgs)
lblMessage.Text = "The time is now: " & DateTime.Now & _
"
started at: " & ViewState("StartTime")
end Sub

‫ זמן טעינת הדף לראשונה‬+ ‫יודפס הערך של הזמן הנוכחי‬
‫האובייקט מתרוקן כאשר המשתמש עוזב את הדף‬

‫‪State Bag‬‬

‫הזמן בכל לחיצה על ‪Submit‬‬

‫רק כאשר הדף נטען לראשונה ‪Stae Bag‬‬

‫סדר פעולות כללי‬
‫‪.1‬‬
‫‪.2‬‬
‫‪.3‬‬

‫‪.4‬‬
‫‪.5‬‬
‫‪.6‬‬
‫‪.7‬‬

‫לקוח מבקש טופס‬
‫השרת מייצר קוד ‪HTML‬‬
‫‪ Page_Load‬מתרחש‬
‫השרת שולח את הטופס‬
‫קריאה לשיטות המטפלות באירועים‬
‫לקוח עוזב את הדף‬
‫‪ Page_Unload‬משחרר כל זיכרון שאין בו צורך‬

‫‪AutoPostBack‬‬
‫‪ ‬משלוח מיידי של נתונים בעת התרחשות האירוע‬

AutoPostBack

‫‪AutoPostBack‬‬

‫הטיפול באירועים‬

'‫סיכום חלק א‬
‫ מאפשרים לשרת לעקוב אחר‬Web ‫ טפסי‬
‫המשתמש‬
‫ סוגי פקדים‬4 ‫ מורכבים מ‬WEB ‫ טפסי‬
USER\Validation\WEB\HTML 
runat=server ‫ הסבת פקד ישן‬
Event 
State Bag 
AutoPostBack 

ASP.NET ‫מבוא ל‬
3 '‫מצגת מס‬

ASP.NET ‫ מבוא ל‬: 3 ‫ שיעור‬

www.doronamir.com
MCSD DORON AMIR


Slide 5

ASP.NET ‫מבוא ל‬
3 '‫מצגת מס‬

ASP.NET ‫ מבוא ל‬: 3 ‫ שיעור‬

www.doronamir.com
MCSD DORON AMIR

‫‪Web Forms‬‬

‫‪ Web Form ‬מאפשר ל ‪ asp.net‬לספק בקרה על‬
‫ממשק המשתמש ע"י אובייקטים הנמצאים בשרת‬

‫‪HTML FORMS‬‬
‫‪ ‬מודל ‪Request \ Response‬‬
‫‪ HTML ‬בנוי מפריטים המרכיבים את ממשק המשתמש‬
‫‪ HTML ‬מבוסס על צד הלקוח ‪Client-Based :‬‬
‫‪ ‬רק כאשר מתבצע ‪ SUBMIT‬נשלחים הנתונים‬
‫‪ ‬השרת אינו יודע כיצד נראה הטופס‬
‫‪ ‬השרת אינו יודע לאיזה סוג נתונים לצפות‬
‫‪Client‬‬

‫‪SERVER‬‬

‫‪POST DATA‬‬

‫‪Web Forms‬‬
‫‪ ‬בניגוד ל ‪ HTML‬ה ‪ Web Forms‬מבוססי שרת‬
‫‪ ‬האלמנטים עבור המשתמש נוצרים בשרת‬
‫‪ ‬השרת יודע כיצד הטופס נראה‬
‫‪ ‬השרת מודע לפונקציונליות הטופס‬
‫‪ ‬השרת מודע לסוגי הנתונים הנשלחים מהטופס‬

‫‪Server Controls‬‬
‫‪ ‬פקדי שרת‬
‫‪ ‬מייצגים חלק ממשק המשתמש ‪UI‬‬
‫‪ ‬אובייטים הניתנים לשליטה מלאה בצד השרת‬
‫‪ ‬מכילים אירועים ‪ ,‬מאפיינים ‪ ,‬שיטות ‪..‬‬
‫‪ ‬בעת בקשה מהלקוח ‪ asp.net ,‬ממירה פקדים‬
‫אלה ל ‪ HTML‬המותאם לסוג הדפדפן‬
‫תמיכה ברמה הנמוכה ‪Down Level Support‬‬

‫‪Event-Driven‬‬
‫‪ ‬מתבסס על מודל ‪Request \ Response‬‬
‫‪ ‬מספק סביבה אינטואיטיבית‬
‫‪ ‬הפקדים מודיעים לשרת ברגע שמשהו מתרחש‬
‫‪ ‬הלקוח שולח מידע לשרת גם ללא ידעת המשתמש‬
‫‪ ‬השרת יוצר את הפקדים ולכן זוכר את הערכים‬
‫‪ ‬שימוש אוטומטי בשדות נסתרים מאפשרים לשרת‬
‫לזכור את מצב התצוגה של כל פקד‬

Server Control Type
HTML
WEB
Validation
USER

Server
Server
Server
Server

Controls 
Controls 
Controls 
Controls 

‫‪HTML\WEB Server Controls‬‬
‫‪HTML ‬‬
‫‪ ‬ייצוג עבור האלמנטים הרגילים ב ‪HTML‬‬
‫‪ ‬נמצאים בצד השרת‬
‫‪WEB ‬‬
‫‪ ‬מספקים פונקציונליות גבוהה יותר‬
‫‪ ‬מציגים ממשקי משתמש מורכבים‬

‫‪Validation\User Server Controls‬‬
‫‪Validation‬‬
‫‪ ‬בדיקת נתוני המשתמש‬
‫‪ ‬טווח ‪ ,‬ביטוי ‪ ,‬נתוני חובה ‪ ,‬סיכום שגיאות ‪...‬‬
‫‪USER‬‬
‫‪ ‬פקדים המותאמים אישית לפי רצון המשתמש‬

‫אירוע אקטיבי \ פסיבי‬
‫אירוע אקטיבי‬
‫‪ ‬מחייב פעולה מפורשת של המשתמש‬
‫‪ ‬הפעולה מבוצעת במתכוון‬
‫‪ ‬לחיצה על קישור‪ ,‬לחצן ‪ ,‬הזנת טקסט ‪...‬‬
‫‪ ‬רק אירועים אקטיביים מטופלים בשרת‬
‫אירוע פסיבי ‪:‬‬
‫מתרחש שלא במתכוון‬
‫הזזת עכבר ‪ ,‬גרירת תמונה ‪...‬‬
‫אירועים פסיבים מתרחשים בתדירות גבוהה מאד‬
‫לכן הם מטופלים בצד הלקוח ‪JavaScript -‬‬

‫‪Events‬‬
‫‪‬‬
‫‪‬‬

‫לפקדי שרת אירועים רבים‬
‫בכל התרחשות אירוע הלקוח שולח נתונים לשרת‬

‫אירעים נשלחים לשרת בשתי דרכים ‪:‬‬
‫‪ .1‬אירוע מופעל ‪ ‬מייד ברגע ההתרחשות‬
‫‪ .2‬אירוע מופעל ‪ ‬במשלוח יחיד ( או קבוצה ) ‪Submit‬‬

‫רשימת הפרמטרים הסטנדרטית עבור אירוע‬
‫ יתרחש‬CLICK ‫כאשר האירוע‬
‫שיטה זו תופעל בצד השרת‬

‫מייצגים נתונים הנכללים במשלוח‬
‫ האובייקט הקורא לשיטה‬: Obj

<script runat="server">

‫ מידע נוסף‬: E

Sub Button1_Click(obj as object, e as EventArgs)
Label1.Text = "You clicked " & obj.Text & ""
end Sub


‫יציג את הטקסט השרשום על הפקד‬
Button1 : ‫שקרא לשיטה‬


runat="server" Text="Button1" onClick="Button1_Click" />

Obj.Text

‫‪View State‬‬
‫‪ ‬טפסי ‪ WEB‬שומרים את מצב התצוגה ע"י שדות‬
‫נסתרים המיוצרים אוטומטית‬
‫‪State bag ‬‬
‫‪ ‬דרך נוספת לשמירת מידע היא ‪State bag‬‬
‫‪ ‬משתמש לשמירת ערכים שהמשתמש לא הזין כמו‬
‫תוצאת חישוב שהתקבלה ויש לשמור אותה‬

State Bag
ViewState("StartTime") = DateTime.Now

Sub Page_Load(obj as object, e as EventArgs)
if not Page.IsPostBack then
ViewState("StartTime") = DateTime.Now
lblMessage.Text = "Time is now: " & ViewState("StartTime")

end if
end sub
State Bag ‫ הזמן ותאריך הבקשה יאוחסנו ב‬: ‫בפעם הראשונה‬
‫הערך ישמר למרות בקשות שונות שיתרחשו‬

State Bag
‫ שולח את הנתונים ומוכיח כי ערך‬SUBMIT ‫ביצוע‬

‫ נשמר‬State Bag ‫ה‬
Sub Submit(obj as object, e as EventArgs)
lblMessage.Text = "The time is now: " & DateTime.Now & _
"
started at: " & ViewState("StartTime")
end Sub

‫ זמן טעינת הדף לראשונה‬+ ‫יודפס הערך של הזמן הנוכחי‬
‫האובייקט מתרוקן כאשר המשתמש עוזב את הדף‬

‫‪State Bag‬‬

‫הזמן בכל לחיצה על ‪Submit‬‬

‫רק כאשר הדף נטען לראשונה ‪Stae Bag‬‬

‫סדר פעולות כללי‬
‫‪.1‬‬
‫‪.2‬‬
‫‪.3‬‬

‫‪.4‬‬
‫‪.5‬‬
‫‪.6‬‬
‫‪.7‬‬

‫לקוח מבקש טופס‬
‫השרת מייצר קוד ‪HTML‬‬
‫‪ Page_Load‬מתרחש‬
‫השרת שולח את הטופס‬
‫קריאה לשיטות המטפלות באירועים‬
‫לקוח עוזב את הדף‬
‫‪ Page_Unload‬משחרר כל זיכרון שאין בו צורך‬

‫‪AutoPostBack‬‬
‫‪ ‬משלוח מיידי של נתונים בעת התרחשות האירוע‬

AutoPostBack

‫‪AutoPostBack‬‬

‫הטיפול באירועים‬

'‫סיכום חלק א‬
‫ מאפשרים לשרת לעקוב אחר‬Web ‫ טפסי‬
‫המשתמש‬
‫ סוגי פקדים‬4 ‫ מורכבים מ‬WEB ‫ טפסי‬
USER\Validation\WEB\HTML 
runat=server ‫ הסבת פקד ישן‬
Event 
State Bag 
AutoPostBack 

ASP.NET ‫מבוא ל‬
3 '‫מצגת מס‬

ASP.NET ‫ מבוא ל‬: 3 ‫ שיעור‬

www.doronamir.com
MCSD DORON AMIR


Slide 6

ASP.NET ‫מבוא ל‬
3 '‫מצגת מס‬

ASP.NET ‫ מבוא ל‬: 3 ‫ שיעור‬

www.doronamir.com
MCSD DORON AMIR

‫‪Web Forms‬‬

‫‪ Web Form ‬מאפשר ל ‪ asp.net‬לספק בקרה על‬
‫ממשק המשתמש ע"י אובייקטים הנמצאים בשרת‬

‫‪HTML FORMS‬‬
‫‪ ‬מודל ‪Request \ Response‬‬
‫‪ HTML ‬בנוי מפריטים המרכיבים את ממשק המשתמש‬
‫‪ HTML ‬מבוסס על צד הלקוח ‪Client-Based :‬‬
‫‪ ‬רק כאשר מתבצע ‪ SUBMIT‬נשלחים הנתונים‬
‫‪ ‬השרת אינו יודע כיצד נראה הטופס‬
‫‪ ‬השרת אינו יודע לאיזה סוג נתונים לצפות‬
‫‪Client‬‬

‫‪SERVER‬‬

‫‪POST DATA‬‬

‫‪Web Forms‬‬
‫‪ ‬בניגוד ל ‪ HTML‬ה ‪ Web Forms‬מבוססי שרת‬
‫‪ ‬האלמנטים עבור המשתמש נוצרים בשרת‬
‫‪ ‬השרת יודע כיצד הטופס נראה‬
‫‪ ‬השרת מודע לפונקציונליות הטופס‬
‫‪ ‬השרת מודע לסוגי הנתונים הנשלחים מהטופס‬

‫‪Server Controls‬‬
‫‪ ‬פקדי שרת‬
‫‪ ‬מייצגים חלק ממשק המשתמש ‪UI‬‬
‫‪ ‬אובייטים הניתנים לשליטה מלאה בצד השרת‬
‫‪ ‬מכילים אירועים ‪ ,‬מאפיינים ‪ ,‬שיטות ‪..‬‬
‫‪ ‬בעת בקשה מהלקוח ‪ asp.net ,‬ממירה פקדים‬
‫אלה ל ‪ HTML‬המותאם לסוג הדפדפן‬
‫תמיכה ברמה הנמוכה ‪Down Level Support‬‬

‫‪Event-Driven‬‬
‫‪ ‬מתבסס על מודל ‪Request \ Response‬‬
‫‪ ‬מספק סביבה אינטואיטיבית‬
‫‪ ‬הפקדים מודיעים לשרת ברגע שמשהו מתרחש‬
‫‪ ‬הלקוח שולח מידע לשרת גם ללא ידעת המשתמש‬
‫‪ ‬השרת יוצר את הפקדים ולכן זוכר את הערכים‬
‫‪ ‬שימוש אוטומטי בשדות נסתרים מאפשרים לשרת‬
‫לזכור את מצב התצוגה של כל פקד‬

Server Control Type
HTML
WEB
Validation
USER

Server
Server
Server
Server

Controls 
Controls 
Controls 
Controls 

‫‪HTML\WEB Server Controls‬‬
‫‪HTML ‬‬
‫‪ ‬ייצוג עבור האלמנטים הרגילים ב ‪HTML‬‬
‫‪ ‬נמצאים בצד השרת‬
‫‪WEB ‬‬
‫‪ ‬מספקים פונקציונליות גבוהה יותר‬
‫‪ ‬מציגים ממשקי משתמש מורכבים‬

‫‪Validation\User Server Controls‬‬
‫‪Validation‬‬
‫‪ ‬בדיקת נתוני המשתמש‬
‫‪ ‬טווח ‪ ,‬ביטוי ‪ ,‬נתוני חובה ‪ ,‬סיכום שגיאות ‪...‬‬
‫‪USER‬‬
‫‪ ‬פקדים המותאמים אישית לפי רצון המשתמש‬

‫אירוע אקטיבי \ פסיבי‬
‫אירוע אקטיבי‬
‫‪ ‬מחייב פעולה מפורשת של המשתמש‬
‫‪ ‬הפעולה מבוצעת במתכוון‬
‫‪ ‬לחיצה על קישור‪ ,‬לחצן ‪ ,‬הזנת טקסט ‪...‬‬
‫‪ ‬רק אירועים אקטיביים מטופלים בשרת‬
‫אירוע פסיבי ‪:‬‬
‫מתרחש שלא במתכוון‬
‫הזזת עכבר ‪ ,‬גרירת תמונה ‪...‬‬
‫אירועים פסיבים מתרחשים בתדירות גבוהה מאד‬
‫לכן הם מטופלים בצד הלקוח ‪JavaScript -‬‬

‫‪Events‬‬
‫‪‬‬
‫‪‬‬

‫לפקדי שרת אירועים רבים‬
‫בכל התרחשות אירוע הלקוח שולח נתונים לשרת‬

‫אירעים נשלחים לשרת בשתי דרכים ‪:‬‬
‫‪ .1‬אירוע מופעל ‪ ‬מייד ברגע ההתרחשות‬
‫‪ .2‬אירוע מופעל ‪ ‬במשלוח יחיד ( או קבוצה ) ‪Submit‬‬

‫רשימת הפרמטרים הסטנדרטית עבור אירוע‬
‫ יתרחש‬CLICK ‫כאשר האירוע‬
‫שיטה זו תופעל בצד השרת‬

‫מייצגים נתונים הנכללים במשלוח‬
‫ האובייקט הקורא לשיטה‬: Obj

<script runat="server">

‫ מידע נוסף‬: E

Sub Button1_Click(obj as object, e as EventArgs)
Label1.Text = "You clicked " & obj.Text & ""
end Sub


‫יציג את הטקסט השרשום על הפקד‬
Button1 : ‫שקרא לשיטה‬


runat="server" Text="Button1" onClick="Button1_Click" />

Obj.Text

‫‪View State‬‬
‫‪ ‬טפסי ‪ WEB‬שומרים את מצב התצוגה ע"י שדות‬
‫נסתרים המיוצרים אוטומטית‬
‫‪State bag ‬‬
‫‪ ‬דרך נוספת לשמירת מידע היא ‪State bag‬‬
‫‪ ‬משתמש לשמירת ערכים שהמשתמש לא הזין כמו‬
‫תוצאת חישוב שהתקבלה ויש לשמור אותה‬

State Bag
ViewState("StartTime") = DateTime.Now

Sub Page_Load(obj as object, e as EventArgs)
if not Page.IsPostBack then
ViewState("StartTime") = DateTime.Now
lblMessage.Text = "Time is now: " & ViewState("StartTime")

end if
end sub
State Bag ‫ הזמן ותאריך הבקשה יאוחסנו ב‬: ‫בפעם הראשונה‬
‫הערך ישמר למרות בקשות שונות שיתרחשו‬

State Bag
‫ שולח את הנתונים ומוכיח כי ערך‬SUBMIT ‫ביצוע‬

‫ נשמר‬State Bag ‫ה‬
Sub Submit(obj as object, e as EventArgs)
lblMessage.Text = "The time is now: " & DateTime.Now & _
"
started at: " & ViewState("StartTime")
end Sub

‫ זמן טעינת הדף לראשונה‬+ ‫יודפס הערך של הזמן הנוכחי‬
‫האובייקט מתרוקן כאשר המשתמש עוזב את הדף‬

‫‪State Bag‬‬

‫הזמן בכל לחיצה על ‪Submit‬‬

‫רק כאשר הדף נטען לראשונה ‪Stae Bag‬‬

‫סדר פעולות כללי‬
‫‪.1‬‬
‫‪.2‬‬
‫‪.3‬‬

‫‪.4‬‬
‫‪.5‬‬
‫‪.6‬‬
‫‪.7‬‬

‫לקוח מבקש טופס‬
‫השרת מייצר קוד ‪HTML‬‬
‫‪ Page_Load‬מתרחש‬
‫השרת שולח את הטופס‬
‫קריאה לשיטות המטפלות באירועים‬
‫לקוח עוזב את הדף‬
‫‪ Page_Unload‬משחרר כל זיכרון שאין בו צורך‬

‫‪AutoPostBack‬‬
‫‪ ‬משלוח מיידי של נתונים בעת התרחשות האירוע‬

AutoPostBack

‫‪AutoPostBack‬‬

‫הטיפול באירועים‬

'‫סיכום חלק א‬
‫ מאפשרים לשרת לעקוב אחר‬Web ‫ טפסי‬
‫המשתמש‬
‫ סוגי פקדים‬4 ‫ מורכבים מ‬WEB ‫ טפסי‬
USER\Validation\WEB\HTML 
runat=server ‫ הסבת פקד ישן‬
Event 
State Bag 
AutoPostBack 

ASP.NET ‫מבוא ל‬
3 '‫מצגת מס‬

ASP.NET ‫ מבוא ל‬: 3 ‫ שיעור‬

www.doronamir.com
MCSD DORON AMIR


Slide 7

ASP.NET ‫מבוא ל‬
3 '‫מצגת מס‬

ASP.NET ‫ מבוא ל‬: 3 ‫ שיעור‬

www.doronamir.com
MCSD DORON AMIR

‫‪Web Forms‬‬

‫‪ Web Form ‬מאפשר ל ‪ asp.net‬לספק בקרה על‬
‫ממשק המשתמש ע"י אובייקטים הנמצאים בשרת‬

‫‪HTML FORMS‬‬
‫‪ ‬מודל ‪Request \ Response‬‬
‫‪ HTML ‬בנוי מפריטים המרכיבים את ממשק המשתמש‬
‫‪ HTML ‬מבוסס על צד הלקוח ‪Client-Based :‬‬
‫‪ ‬רק כאשר מתבצע ‪ SUBMIT‬נשלחים הנתונים‬
‫‪ ‬השרת אינו יודע כיצד נראה הטופס‬
‫‪ ‬השרת אינו יודע לאיזה סוג נתונים לצפות‬
‫‪Client‬‬

‫‪SERVER‬‬

‫‪POST DATA‬‬

‫‪Web Forms‬‬
‫‪ ‬בניגוד ל ‪ HTML‬ה ‪ Web Forms‬מבוססי שרת‬
‫‪ ‬האלמנטים עבור המשתמש נוצרים בשרת‬
‫‪ ‬השרת יודע כיצד הטופס נראה‬
‫‪ ‬השרת מודע לפונקציונליות הטופס‬
‫‪ ‬השרת מודע לסוגי הנתונים הנשלחים מהטופס‬

‫‪Server Controls‬‬
‫‪ ‬פקדי שרת‬
‫‪ ‬מייצגים חלק ממשק המשתמש ‪UI‬‬
‫‪ ‬אובייטים הניתנים לשליטה מלאה בצד השרת‬
‫‪ ‬מכילים אירועים ‪ ,‬מאפיינים ‪ ,‬שיטות ‪..‬‬
‫‪ ‬בעת בקשה מהלקוח ‪ asp.net ,‬ממירה פקדים‬
‫אלה ל ‪ HTML‬המותאם לסוג הדפדפן‬
‫תמיכה ברמה הנמוכה ‪Down Level Support‬‬

‫‪Event-Driven‬‬
‫‪ ‬מתבסס על מודל ‪Request \ Response‬‬
‫‪ ‬מספק סביבה אינטואיטיבית‬
‫‪ ‬הפקדים מודיעים לשרת ברגע שמשהו מתרחש‬
‫‪ ‬הלקוח שולח מידע לשרת גם ללא ידעת המשתמש‬
‫‪ ‬השרת יוצר את הפקדים ולכן זוכר את הערכים‬
‫‪ ‬שימוש אוטומטי בשדות נסתרים מאפשרים לשרת‬
‫לזכור את מצב התצוגה של כל פקד‬

Server Control Type
HTML
WEB
Validation
USER

Server
Server
Server
Server

Controls 
Controls 
Controls 
Controls 

‫‪HTML\WEB Server Controls‬‬
‫‪HTML ‬‬
‫‪ ‬ייצוג עבור האלמנטים הרגילים ב ‪HTML‬‬
‫‪ ‬נמצאים בצד השרת‬
‫‪WEB ‬‬
‫‪ ‬מספקים פונקציונליות גבוהה יותר‬
‫‪ ‬מציגים ממשקי משתמש מורכבים‬

‫‪Validation\User Server Controls‬‬
‫‪Validation‬‬
‫‪ ‬בדיקת נתוני המשתמש‬
‫‪ ‬טווח ‪ ,‬ביטוי ‪ ,‬נתוני חובה ‪ ,‬סיכום שגיאות ‪...‬‬
‫‪USER‬‬
‫‪ ‬פקדים המותאמים אישית לפי רצון המשתמש‬

‫אירוע אקטיבי \ פסיבי‬
‫אירוע אקטיבי‬
‫‪ ‬מחייב פעולה מפורשת של המשתמש‬
‫‪ ‬הפעולה מבוצעת במתכוון‬
‫‪ ‬לחיצה על קישור‪ ,‬לחצן ‪ ,‬הזנת טקסט ‪...‬‬
‫‪ ‬רק אירועים אקטיביים מטופלים בשרת‬
‫אירוע פסיבי ‪:‬‬
‫מתרחש שלא במתכוון‬
‫הזזת עכבר ‪ ,‬גרירת תמונה ‪...‬‬
‫אירועים פסיבים מתרחשים בתדירות גבוהה מאד‬
‫לכן הם מטופלים בצד הלקוח ‪JavaScript -‬‬

‫‪Events‬‬
‫‪‬‬
‫‪‬‬

‫לפקדי שרת אירועים רבים‬
‫בכל התרחשות אירוע הלקוח שולח נתונים לשרת‬

‫אירעים נשלחים לשרת בשתי דרכים ‪:‬‬
‫‪ .1‬אירוע מופעל ‪ ‬מייד ברגע ההתרחשות‬
‫‪ .2‬אירוע מופעל ‪ ‬במשלוח יחיד ( או קבוצה ) ‪Submit‬‬

‫רשימת הפרמטרים הסטנדרטית עבור אירוע‬
‫ יתרחש‬CLICK ‫כאשר האירוע‬
‫שיטה זו תופעל בצד השרת‬

‫מייצגים נתונים הנכללים במשלוח‬
‫ האובייקט הקורא לשיטה‬: Obj

<script runat="server">

‫ מידע נוסף‬: E

Sub Button1_Click(obj as object, e as EventArgs)
Label1.Text = "You clicked " & obj.Text & ""
end Sub


‫יציג את הטקסט השרשום על הפקד‬
Button1 : ‫שקרא לשיטה‬


runat="server" Text="Button1" onClick="Button1_Click" />

Obj.Text

‫‪View State‬‬
‫‪ ‬טפסי ‪ WEB‬שומרים את מצב התצוגה ע"י שדות‬
‫נסתרים המיוצרים אוטומטית‬
‫‪State bag ‬‬
‫‪ ‬דרך נוספת לשמירת מידע היא ‪State bag‬‬
‫‪ ‬משתמש לשמירת ערכים שהמשתמש לא הזין כמו‬
‫תוצאת חישוב שהתקבלה ויש לשמור אותה‬

State Bag
ViewState("StartTime") = DateTime.Now

Sub Page_Load(obj as object, e as EventArgs)
if not Page.IsPostBack then
ViewState("StartTime") = DateTime.Now
lblMessage.Text = "Time is now: " & ViewState("StartTime")

end if
end sub
State Bag ‫ הזמן ותאריך הבקשה יאוחסנו ב‬: ‫בפעם הראשונה‬
‫הערך ישמר למרות בקשות שונות שיתרחשו‬

State Bag
‫ שולח את הנתונים ומוכיח כי ערך‬SUBMIT ‫ביצוע‬

‫ נשמר‬State Bag ‫ה‬
Sub Submit(obj as object, e as EventArgs)
lblMessage.Text = "The time is now: " & DateTime.Now & _
"
started at: " & ViewState("StartTime")
end Sub

‫ זמן טעינת הדף לראשונה‬+ ‫יודפס הערך של הזמן הנוכחי‬
‫האובייקט מתרוקן כאשר המשתמש עוזב את הדף‬

‫‪State Bag‬‬

‫הזמן בכל לחיצה על ‪Submit‬‬

‫רק כאשר הדף נטען לראשונה ‪Stae Bag‬‬

‫סדר פעולות כללי‬
‫‪.1‬‬
‫‪.2‬‬
‫‪.3‬‬

‫‪.4‬‬
‫‪.5‬‬
‫‪.6‬‬
‫‪.7‬‬

‫לקוח מבקש טופס‬
‫השרת מייצר קוד ‪HTML‬‬
‫‪ Page_Load‬מתרחש‬
‫השרת שולח את הטופס‬
‫קריאה לשיטות המטפלות באירועים‬
‫לקוח עוזב את הדף‬
‫‪ Page_Unload‬משחרר כל זיכרון שאין בו צורך‬

‫‪AutoPostBack‬‬
‫‪ ‬משלוח מיידי של נתונים בעת התרחשות האירוע‬

AutoPostBack

‫‪AutoPostBack‬‬

‫הטיפול באירועים‬

'‫סיכום חלק א‬
‫ מאפשרים לשרת לעקוב אחר‬Web ‫ טפסי‬
‫המשתמש‬
‫ סוגי פקדים‬4 ‫ מורכבים מ‬WEB ‫ טפסי‬
USER\Validation\WEB\HTML 
runat=server ‫ הסבת פקד ישן‬
Event 
State Bag 
AutoPostBack 

ASP.NET ‫מבוא ל‬
3 '‫מצגת מס‬

ASP.NET ‫ מבוא ל‬: 3 ‫ שיעור‬

www.doronamir.com
MCSD DORON AMIR


Slide 8

ASP.NET ‫מבוא ל‬
3 '‫מצגת מס‬

ASP.NET ‫ מבוא ל‬: 3 ‫ שיעור‬

www.doronamir.com
MCSD DORON AMIR

‫‪Web Forms‬‬

‫‪ Web Form ‬מאפשר ל ‪ asp.net‬לספק בקרה על‬
‫ממשק המשתמש ע"י אובייקטים הנמצאים בשרת‬

‫‪HTML FORMS‬‬
‫‪ ‬מודל ‪Request \ Response‬‬
‫‪ HTML ‬בנוי מפריטים המרכיבים את ממשק המשתמש‬
‫‪ HTML ‬מבוסס על צד הלקוח ‪Client-Based :‬‬
‫‪ ‬רק כאשר מתבצע ‪ SUBMIT‬נשלחים הנתונים‬
‫‪ ‬השרת אינו יודע כיצד נראה הטופס‬
‫‪ ‬השרת אינו יודע לאיזה סוג נתונים לצפות‬
‫‪Client‬‬

‫‪SERVER‬‬

‫‪POST DATA‬‬

‫‪Web Forms‬‬
‫‪ ‬בניגוד ל ‪ HTML‬ה ‪ Web Forms‬מבוססי שרת‬
‫‪ ‬האלמנטים עבור המשתמש נוצרים בשרת‬
‫‪ ‬השרת יודע כיצד הטופס נראה‬
‫‪ ‬השרת מודע לפונקציונליות הטופס‬
‫‪ ‬השרת מודע לסוגי הנתונים הנשלחים מהטופס‬

‫‪Server Controls‬‬
‫‪ ‬פקדי שרת‬
‫‪ ‬מייצגים חלק ממשק המשתמש ‪UI‬‬
‫‪ ‬אובייטים הניתנים לשליטה מלאה בצד השרת‬
‫‪ ‬מכילים אירועים ‪ ,‬מאפיינים ‪ ,‬שיטות ‪..‬‬
‫‪ ‬בעת בקשה מהלקוח ‪ asp.net ,‬ממירה פקדים‬
‫אלה ל ‪ HTML‬המותאם לסוג הדפדפן‬
‫תמיכה ברמה הנמוכה ‪Down Level Support‬‬

‫‪Event-Driven‬‬
‫‪ ‬מתבסס על מודל ‪Request \ Response‬‬
‫‪ ‬מספק סביבה אינטואיטיבית‬
‫‪ ‬הפקדים מודיעים לשרת ברגע שמשהו מתרחש‬
‫‪ ‬הלקוח שולח מידע לשרת גם ללא ידעת המשתמש‬
‫‪ ‬השרת יוצר את הפקדים ולכן זוכר את הערכים‬
‫‪ ‬שימוש אוטומטי בשדות נסתרים מאפשרים לשרת‬
‫לזכור את מצב התצוגה של כל פקד‬

Server Control Type
HTML
WEB
Validation
USER

Server
Server
Server
Server

Controls 
Controls 
Controls 
Controls 

‫‪HTML\WEB Server Controls‬‬
‫‪HTML ‬‬
‫‪ ‬ייצוג עבור האלמנטים הרגילים ב ‪HTML‬‬
‫‪ ‬נמצאים בצד השרת‬
‫‪WEB ‬‬
‫‪ ‬מספקים פונקציונליות גבוהה יותר‬
‫‪ ‬מציגים ממשקי משתמש מורכבים‬

‫‪Validation\User Server Controls‬‬
‫‪Validation‬‬
‫‪ ‬בדיקת נתוני המשתמש‬
‫‪ ‬טווח ‪ ,‬ביטוי ‪ ,‬נתוני חובה ‪ ,‬סיכום שגיאות ‪...‬‬
‫‪USER‬‬
‫‪ ‬פקדים המותאמים אישית לפי רצון המשתמש‬

‫אירוע אקטיבי \ פסיבי‬
‫אירוע אקטיבי‬
‫‪ ‬מחייב פעולה מפורשת של המשתמש‬
‫‪ ‬הפעולה מבוצעת במתכוון‬
‫‪ ‬לחיצה על קישור‪ ,‬לחצן ‪ ,‬הזנת טקסט ‪...‬‬
‫‪ ‬רק אירועים אקטיביים מטופלים בשרת‬
‫אירוע פסיבי ‪:‬‬
‫מתרחש שלא במתכוון‬
‫הזזת עכבר ‪ ,‬גרירת תמונה ‪...‬‬
‫אירועים פסיבים מתרחשים בתדירות גבוהה מאד‬
‫לכן הם מטופלים בצד הלקוח ‪JavaScript -‬‬

‫‪Events‬‬
‫‪‬‬
‫‪‬‬

‫לפקדי שרת אירועים רבים‬
‫בכל התרחשות אירוע הלקוח שולח נתונים לשרת‬

‫אירעים נשלחים לשרת בשתי דרכים ‪:‬‬
‫‪ .1‬אירוע מופעל ‪ ‬מייד ברגע ההתרחשות‬
‫‪ .2‬אירוע מופעל ‪ ‬במשלוח יחיד ( או קבוצה ) ‪Submit‬‬

‫רשימת הפרמטרים הסטנדרטית עבור אירוע‬
‫ יתרחש‬CLICK ‫כאשר האירוע‬
‫שיטה זו תופעל בצד השרת‬

‫מייצגים נתונים הנכללים במשלוח‬
‫ האובייקט הקורא לשיטה‬: Obj

<script runat="server">

‫ מידע נוסף‬: E

Sub Button1_Click(obj as object, e as EventArgs)
Label1.Text = "You clicked " & obj.Text & ""
end Sub


‫יציג את הטקסט השרשום על הפקד‬
Button1 : ‫שקרא לשיטה‬


runat="server" Text="Button1" onClick="Button1_Click" />

Obj.Text

‫‪View State‬‬
‫‪ ‬טפסי ‪ WEB‬שומרים את מצב התצוגה ע"י שדות‬
‫נסתרים המיוצרים אוטומטית‬
‫‪State bag ‬‬
‫‪ ‬דרך נוספת לשמירת מידע היא ‪State bag‬‬
‫‪ ‬משתמש לשמירת ערכים שהמשתמש לא הזין כמו‬
‫תוצאת חישוב שהתקבלה ויש לשמור אותה‬

State Bag
ViewState("StartTime") = DateTime.Now

Sub Page_Load(obj as object, e as EventArgs)
if not Page.IsPostBack then
ViewState("StartTime") = DateTime.Now
lblMessage.Text = "Time is now: " & ViewState("StartTime")

end if
end sub
State Bag ‫ הזמן ותאריך הבקשה יאוחסנו ב‬: ‫בפעם הראשונה‬
‫הערך ישמר למרות בקשות שונות שיתרחשו‬

State Bag
‫ שולח את הנתונים ומוכיח כי ערך‬SUBMIT ‫ביצוע‬

‫ נשמר‬State Bag ‫ה‬
Sub Submit(obj as object, e as EventArgs)
lblMessage.Text = "The time is now: " & DateTime.Now & _
"
started at: " & ViewState("StartTime")
end Sub

‫ זמן טעינת הדף לראשונה‬+ ‫יודפס הערך של הזמן הנוכחי‬
‫האובייקט מתרוקן כאשר המשתמש עוזב את הדף‬

‫‪State Bag‬‬

‫הזמן בכל לחיצה על ‪Submit‬‬

‫רק כאשר הדף נטען לראשונה ‪Stae Bag‬‬

‫סדר פעולות כללי‬
‫‪.1‬‬
‫‪.2‬‬
‫‪.3‬‬

‫‪.4‬‬
‫‪.5‬‬
‫‪.6‬‬
‫‪.7‬‬

‫לקוח מבקש טופס‬
‫השרת מייצר קוד ‪HTML‬‬
‫‪ Page_Load‬מתרחש‬
‫השרת שולח את הטופס‬
‫קריאה לשיטות המטפלות באירועים‬
‫לקוח עוזב את הדף‬
‫‪ Page_Unload‬משחרר כל זיכרון שאין בו צורך‬

‫‪AutoPostBack‬‬
‫‪ ‬משלוח מיידי של נתונים בעת התרחשות האירוע‬

AutoPostBack

‫‪AutoPostBack‬‬

‫הטיפול באירועים‬

'‫סיכום חלק א‬
‫ מאפשרים לשרת לעקוב אחר‬Web ‫ טפסי‬
‫המשתמש‬
‫ סוגי פקדים‬4 ‫ מורכבים מ‬WEB ‫ טפסי‬
USER\Validation\WEB\HTML 
runat=server ‫ הסבת פקד ישן‬
Event 
State Bag 
AutoPostBack 

ASP.NET ‫מבוא ל‬
3 '‫מצגת מס‬

ASP.NET ‫ מבוא ל‬: 3 ‫ שיעור‬

www.doronamir.com
MCSD DORON AMIR


Slide 9

ASP.NET ‫מבוא ל‬
3 '‫מצגת מס‬

ASP.NET ‫ מבוא ל‬: 3 ‫ שיעור‬

www.doronamir.com
MCSD DORON AMIR

‫‪Web Forms‬‬

‫‪ Web Form ‬מאפשר ל ‪ asp.net‬לספק בקרה על‬
‫ממשק המשתמש ע"י אובייקטים הנמצאים בשרת‬

‫‪HTML FORMS‬‬
‫‪ ‬מודל ‪Request \ Response‬‬
‫‪ HTML ‬בנוי מפריטים המרכיבים את ממשק המשתמש‬
‫‪ HTML ‬מבוסס על צד הלקוח ‪Client-Based :‬‬
‫‪ ‬רק כאשר מתבצע ‪ SUBMIT‬נשלחים הנתונים‬
‫‪ ‬השרת אינו יודע כיצד נראה הטופס‬
‫‪ ‬השרת אינו יודע לאיזה סוג נתונים לצפות‬
‫‪Client‬‬

‫‪SERVER‬‬

‫‪POST DATA‬‬

‫‪Web Forms‬‬
‫‪ ‬בניגוד ל ‪ HTML‬ה ‪ Web Forms‬מבוססי שרת‬
‫‪ ‬האלמנטים עבור המשתמש נוצרים בשרת‬
‫‪ ‬השרת יודע כיצד הטופס נראה‬
‫‪ ‬השרת מודע לפונקציונליות הטופס‬
‫‪ ‬השרת מודע לסוגי הנתונים הנשלחים מהטופס‬

‫‪Server Controls‬‬
‫‪ ‬פקדי שרת‬
‫‪ ‬מייצגים חלק ממשק המשתמש ‪UI‬‬
‫‪ ‬אובייטים הניתנים לשליטה מלאה בצד השרת‬
‫‪ ‬מכילים אירועים ‪ ,‬מאפיינים ‪ ,‬שיטות ‪..‬‬
‫‪ ‬בעת בקשה מהלקוח ‪ asp.net ,‬ממירה פקדים‬
‫אלה ל ‪ HTML‬המותאם לסוג הדפדפן‬
‫תמיכה ברמה הנמוכה ‪Down Level Support‬‬

‫‪Event-Driven‬‬
‫‪ ‬מתבסס על מודל ‪Request \ Response‬‬
‫‪ ‬מספק סביבה אינטואיטיבית‬
‫‪ ‬הפקדים מודיעים לשרת ברגע שמשהו מתרחש‬
‫‪ ‬הלקוח שולח מידע לשרת גם ללא ידעת המשתמש‬
‫‪ ‬השרת יוצר את הפקדים ולכן זוכר את הערכים‬
‫‪ ‬שימוש אוטומטי בשדות נסתרים מאפשרים לשרת‬
‫לזכור את מצב התצוגה של כל פקד‬

Server Control Type
HTML
WEB
Validation
USER

Server
Server
Server
Server

Controls 
Controls 
Controls 
Controls 

‫‪HTML\WEB Server Controls‬‬
‫‪HTML ‬‬
‫‪ ‬ייצוג עבור האלמנטים הרגילים ב ‪HTML‬‬
‫‪ ‬נמצאים בצד השרת‬
‫‪WEB ‬‬
‫‪ ‬מספקים פונקציונליות גבוהה יותר‬
‫‪ ‬מציגים ממשקי משתמש מורכבים‬

‫‪Validation\User Server Controls‬‬
‫‪Validation‬‬
‫‪ ‬בדיקת נתוני המשתמש‬
‫‪ ‬טווח ‪ ,‬ביטוי ‪ ,‬נתוני חובה ‪ ,‬סיכום שגיאות ‪...‬‬
‫‪USER‬‬
‫‪ ‬פקדים המותאמים אישית לפי רצון המשתמש‬

‫אירוע אקטיבי \ פסיבי‬
‫אירוע אקטיבי‬
‫‪ ‬מחייב פעולה מפורשת של המשתמש‬
‫‪ ‬הפעולה מבוצעת במתכוון‬
‫‪ ‬לחיצה על קישור‪ ,‬לחצן ‪ ,‬הזנת טקסט ‪...‬‬
‫‪ ‬רק אירועים אקטיביים מטופלים בשרת‬
‫אירוע פסיבי ‪:‬‬
‫מתרחש שלא במתכוון‬
‫הזזת עכבר ‪ ,‬גרירת תמונה ‪...‬‬
‫אירועים פסיבים מתרחשים בתדירות גבוהה מאד‬
‫לכן הם מטופלים בצד הלקוח ‪JavaScript -‬‬

‫‪Events‬‬
‫‪‬‬
‫‪‬‬

‫לפקדי שרת אירועים רבים‬
‫בכל התרחשות אירוע הלקוח שולח נתונים לשרת‬

‫אירעים נשלחים לשרת בשתי דרכים ‪:‬‬
‫‪ .1‬אירוע מופעל ‪ ‬מייד ברגע ההתרחשות‬
‫‪ .2‬אירוע מופעל ‪ ‬במשלוח יחיד ( או קבוצה ) ‪Submit‬‬

‫רשימת הפרמטרים הסטנדרטית עבור אירוע‬
‫ יתרחש‬CLICK ‫כאשר האירוע‬
‫שיטה זו תופעל בצד השרת‬

‫מייצגים נתונים הנכללים במשלוח‬
‫ האובייקט הקורא לשיטה‬: Obj

<script runat="server">

‫ מידע נוסף‬: E

Sub Button1_Click(obj as object, e as EventArgs)
Label1.Text = "You clicked " & obj.Text & ""
end Sub


‫יציג את הטקסט השרשום על הפקד‬
Button1 : ‫שקרא לשיטה‬


runat="server" Text="Button1" onClick="Button1_Click" />

Obj.Text

‫‪View State‬‬
‫‪ ‬טפסי ‪ WEB‬שומרים את מצב התצוגה ע"י שדות‬
‫נסתרים המיוצרים אוטומטית‬
‫‪State bag ‬‬
‫‪ ‬דרך נוספת לשמירת מידע היא ‪State bag‬‬
‫‪ ‬משתמש לשמירת ערכים שהמשתמש לא הזין כמו‬
‫תוצאת חישוב שהתקבלה ויש לשמור אותה‬

State Bag
ViewState("StartTime") = DateTime.Now

Sub Page_Load(obj as object, e as EventArgs)
if not Page.IsPostBack then
ViewState("StartTime") = DateTime.Now
lblMessage.Text = "Time is now: " & ViewState("StartTime")

end if
end sub
State Bag ‫ הזמן ותאריך הבקשה יאוחסנו ב‬: ‫בפעם הראשונה‬
‫הערך ישמר למרות בקשות שונות שיתרחשו‬

State Bag
‫ שולח את הנתונים ומוכיח כי ערך‬SUBMIT ‫ביצוע‬

‫ נשמר‬State Bag ‫ה‬
Sub Submit(obj as object, e as EventArgs)
lblMessage.Text = "The time is now: " & DateTime.Now & _
"
started at: " & ViewState("StartTime")
end Sub

‫ זמן טעינת הדף לראשונה‬+ ‫יודפס הערך של הזמן הנוכחי‬
‫האובייקט מתרוקן כאשר המשתמש עוזב את הדף‬

‫‪State Bag‬‬

‫הזמן בכל לחיצה על ‪Submit‬‬

‫רק כאשר הדף נטען לראשונה ‪Stae Bag‬‬

‫סדר פעולות כללי‬
‫‪.1‬‬
‫‪.2‬‬
‫‪.3‬‬

‫‪.4‬‬
‫‪.5‬‬
‫‪.6‬‬
‫‪.7‬‬

‫לקוח מבקש טופס‬
‫השרת מייצר קוד ‪HTML‬‬
‫‪ Page_Load‬מתרחש‬
‫השרת שולח את הטופס‬
‫קריאה לשיטות המטפלות באירועים‬
‫לקוח עוזב את הדף‬
‫‪ Page_Unload‬משחרר כל זיכרון שאין בו צורך‬

‫‪AutoPostBack‬‬
‫‪ ‬משלוח מיידי של נתונים בעת התרחשות האירוע‬

AutoPostBack

‫‪AutoPostBack‬‬

‫הטיפול באירועים‬

'‫סיכום חלק א‬
‫ מאפשרים לשרת לעקוב אחר‬Web ‫ טפסי‬
‫המשתמש‬
‫ סוגי פקדים‬4 ‫ מורכבים מ‬WEB ‫ טפסי‬
USER\Validation\WEB\HTML 
runat=server ‫ הסבת פקד ישן‬
Event 
State Bag 
AutoPostBack 

ASP.NET ‫מבוא ל‬
3 '‫מצגת מס‬

ASP.NET ‫ מבוא ל‬: 3 ‫ שיעור‬

www.doronamir.com
MCSD DORON AMIR


Slide 10

ASP.NET ‫מבוא ל‬
3 '‫מצגת מס‬

ASP.NET ‫ מבוא ל‬: 3 ‫ שיעור‬

www.doronamir.com
MCSD DORON AMIR

‫‪Web Forms‬‬

‫‪ Web Form ‬מאפשר ל ‪ asp.net‬לספק בקרה על‬
‫ממשק המשתמש ע"י אובייקטים הנמצאים בשרת‬

‫‪HTML FORMS‬‬
‫‪ ‬מודל ‪Request \ Response‬‬
‫‪ HTML ‬בנוי מפריטים המרכיבים את ממשק המשתמש‬
‫‪ HTML ‬מבוסס על צד הלקוח ‪Client-Based :‬‬
‫‪ ‬רק כאשר מתבצע ‪ SUBMIT‬נשלחים הנתונים‬
‫‪ ‬השרת אינו יודע כיצד נראה הטופס‬
‫‪ ‬השרת אינו יודע לאיזה סוג נתונים לצפות‬
‫‪Client‬‬

‫‪SERVER‬‬

‫‪POST DATA‬‬

‫‪Web Forms‬‬
‫‪ ‬בניגוד ל ‪ HTML‬ה ‪ Web Forms‬מבוססי שרת‬
‫‪ ‬האלמנטים עבור המשתמש נוצרים בשרת‬
‫‪ ‬השרת יודע כיצד הטופס נראה‬
‫‪ ‬השרת מודע לפונקציונליות הטופס‬
‫‪ ‬השרת מודע לסוגי הנתונים הנשלחים מהטופס‬

‫‪Server Controls‬‬
‫‪ ‬פקדי שרת‬
‫‪ ‬מייצגים חלק ממשק המשתמש ‪UI‬‬
‫‪ ‬אובייטים הניתנים לשליטה מלאה בצד השרת‬
‫‪ ‬מכילים אירועים ‪ ,‬מאפיינים ‪ ,‬שיטות ‪..‬‬
‫‪ ‬בעת בקשה מהלקוח ‪ asp.net ,‬ממירה פקדים‬
‫אלה ל ‪ HTML‬המותאם לסוג הדפדפן‬
‫תמיכה ברמה הנמוכה ‪Down Level Support‬‬

‫‪Event-Driven‬‬
‫‪ ‬מתבסס על מודל ‪Request \ Response‬‬
‫‪ ‬מספק סביבה אינטואיטיבית‬
‫‪ ‬הפקדים מודיעים לשרת ברגע שמשהו מתרחש‬
‫‪ ‬הלקוח שולח מידע לשרת גם ללא ידעת המשתמש‬
‫‪ ‬השרת יוצר את הפקדים ולכן זוכר את הערכים‬
‫‪ ‬שימוש אוטומטי בשדות נסתרים מאפשרים לשרת‬
‫לזכור את מצב התצוגה של כל פקד‬

Server Control Type
HTML
WEB
Validation
USER

Server
Server
Server
Server

Controls 
Controls 
Controls 
Controls 

‫‪HTML\WEB Server Controls‬‬
‫‪HTML ‬‬
‫‪ ‬ייצוג עבור האלמנטים הרגילים ב ‪HTML‬‬
‫‪ ‬נמצאים בצד השרת‬
‫‪WEB ‬‬
‫‪ ‬מספקים פונקציונליות גבוהה יותר‬
‫‪ ‬מציגים ממשקי משתמש מורכבים‬

‫‪Validation\User Server Controls‬‬
‫‪Validation‬‬
‫‪ ‬בדיקת נתוני המשתמש‬
‫‪ ‬טווח ‪ ,‬ביטוי ‪ ,‬נתוני חובה ‪ ,‬סיכום שגיאות ‪...‬‬
‫‪USER‬‬
‫‪ ‬פקדים המותאמים אישית לפי רצון המשתמש‬

‫אירוע אקטיבי \ פסיבי‬
‫אירוע אקטיבי‬
‫‪ ‬מחייב פעולה מפורשת של המשתמש‬
‫‪ ‬הפעולה מבוצעת במתכוון‬
‫‪ ‬לחיצה על קישור‪ ,‬לחצן ‪ ,‬הזנת טקסט ‪...‬‬
‫‪ ‬רק אירועים אקטיביים מטופלים בשרת‬
‫אירוע פסיבי ‪:‬‬
‫מתרחש שלא במתכוון‬
‫הזזת עכבר ‪ ,‬גרירת תמונה ‪...‬‬
‫אירועים פסיבים מתרחשים בתדירות גבוהה מאד‬
‫לכן הם מטופלים בצד הלקוח ‪JavaScript -‬‬

‫‪Events‬‬
‫‪‬‬
‫‪‬‬

‫לפקדי שרת אירועים רבים‬
‫בכל התרחשות אירוע הלקוח שולח נתונים לשרת‬

‫אירעים נשלחים לשרת בשתי דרכים ‪:‬‬
‫‪ .1‬אירוע מופעל ‪ ‬מייד ברגע ההתרחשות‬
‫‪ .2‬אירוע מופעל ‪ ‬במשלוח יחיד ( או קבוצה ) ‪Submit‬‬

‫רשימת הפרמטרים הסטנדרטית עבור אירוע‬
‫ יתרחש‬CLICK ‫כאשר האירוע‬
‫שיטה זו תופעל בצד השרת‬

‫מייצגים נתונים הנכללים במשלוח‬
‫ האובייקט הקורא לשיטה‬: Obj

<script runat="server">

‫ מידע נוסף‬: E

Sub Button1_Click(obj as object, e as EventArgs)
Label1.Text = "You clicked " & obj.Text & ""
end Sub


‫יציג את הטקסט השרשום על הפקד‬
Button1 : ‫שקרא לשיטה‬


runat="server" Text="Button1" onClick="Button1_Click" />

Obj.Text

‫‪View State‬‬
‫‪ ‬טפסי ‪ WEB‬שומרים את מצב התצוגה ע"י שדות‬
‫נסתרים המיוצרים אוטומטית‬
‫‪State bag ‬‬
‫‪ ‬דרך נוספת לשמירת מידע היא ‪State bag‬‬
‫‪ ‬משתמש לשמירת ערכים שהמשתמש לא הזין כמו‬
‫תוצאת חישוב שהתקבלה ויש לשמור אותה‬

State Bag
ViewState("StartTime") = DateTime.Now

Sub Page_Load(obj as object, e as EventArgs)
if not Page.IsPostBack then
ViewState("StartTime") = DateTime.Now
lblMessage.Text = "Time is now: " & ViewState("StartTime")

end if
end sub
State Bag ‫ הזמן ותאריך הבקשה יאוחסנו ב‬: ‫בפעם הראשונה‬
‫הערך ישמר למרות בקשות שונות שיתרחשו‬

State Bag
‫ שולח את הנתונים ומוכיח כי ערך‬SUBMIT ‫ביצוע‬

‫ נשמר‬State Bag ‫ה‬
Sub Submit(obj as object, e as EventArgs)
lblMessage.Text = "The time is now: " & DateTime.Now & _
"
started at: " & ViewState("StartTime")
end Sub

‫ זמן טעינת הדף לראשונה‬+ ‫יודפס הערך של הזמן הנוכחי‬
‫האובייקט מתרוקן כאשר המשתמש עוזב את הדף‬

‫‪State Bag‬‬

‫הזמן בכל לחיצה על ‪Submit‬‬

‫רק כאשר הדף נטען לראשונה ‪Stae Bag‬‬

‫סדר פעולות כללי‬
‫‪.1‬‬
‫‪.2‬‬
‫‪.3‬‬

‫‪.4‬‬
‫‪.5‬‬
‫‪.6‬‬
‫‪.7‬‬

‫לקוח מבקש טופס‬
‫השרת מייצר קוד ‪HTML‬‬
‫‪ Page_Load‬מתרחש‬
‫השרת שולח את הטופס‬
‫קריאה לשיטות המטפלות באירועים‬
‫לקוח עוזב את הדף‬
‫‪ Page_Unload‬משחרר כל זיכרון שאין בו צורך‬

‫‪AutoPostBack‬‬
‫‪ ‬משלוח מיידי של נתונים בעת התרחשות האירוע‬

AutoPostBack

‫‪AutoPostBack‬‬

‫הטיפול באירועים‬

'‫סיכום חלק א‬
‫ מאפשרים לשרת לעקוב אחר‬Web ‫ טפסי‬
‫המשתמש‬
‫ סוגי פקדים‬4 ‫ מורכבים מ‬WEB ‫ טפסי‬
USER\Validation\WEB\HTML 
runat=server ‫ הסבת פקד ישן‬
Event 
State Bag 
AutoPostBack 

ASP.NET ‫מבוא ל‬
3 '‫מצגת מס‬

ASP.NET ‫ מבוא ל‬: 3 ‫ שיעור‬

www.doronamir.com
MCSD DORON AMIR


Slide 11

ASP.NET ‫מבוא ל‬
3 '‫מצגת מס‬

ASP.NET ‫ מבוא ל‬: 3 ‫ שיעור‬

www.doronamir.com
MCSD DORON AMIR

‫‪Web Forms‬‬

‫‪ Web Form ‬מאפשר ל ‪ asp.net‬לספק בקרה על‬
‫ממשק המשתמש ע"י אובייקטים הנמצאים בשרת‬

‫‪HTML FORMS‬‬
‫‪ ‬מודל ‪Request \ Response‬‬
‫‪ HTML ‬בנוי מפריטים המרכיבים את ממשק המשתמש‬
‫‪ HTML ‬מבוסס על צד הלקוח ‪Client-Based :‬‬
‫‪ ‬רק כאשר מתבצע ‪ SUBMIT‬נשלחים הנתונים‬
‫‪ ‬השרת אינו יודע כיצד נראה הטופס‬
‫‪ ‬השרת אינו יודע לאיזה סוג נתונים לצפות‬
‫‪Client‬‬

‫‪SERVER‬‬

‫‪POST DATA‬‬

‫‪Web Forms‬‬
‫‪ ‬בניגוד ל ‪ HTML‬ה ‪ Web Forms‬מבוססי שרת‬
‫‪ ‬האלמנטים עבור המשתמש נוצרים בשרת‬
‫‪ ‬השרת יודע כיצד הטופס נראה‬
‫‪ ‬השרת מודע לפונקציונליות הטופס‬
‫‪ ‬השרת מודע לסוגי הנתונים הנשלחים מהטופס‬

‫‪Server Controls‬‬
‫‪ ‬פקדי שרת‬
‫‪ ‬מייצגים חלק ממשק המשתמש ‪UI‬‬
‫‪ ‬אובייטים הניתנים לשליטה מלאה בצד השרת‬
‫‪ ‬מכילים אירועים ‪ ,‬מאפיינים ‪ ,‬שיטות ‪..‬‬
‫‪ ‬בעת בקשה מהלקוח ‪ asp.net ,‬ממירה פקדים‬
‫אלה ל ‪ HTML‬המותאם לסוג הדפדפן‬
‫תמיכה ברמה הנמוכה ‪Down Level Support‬‬

‫‪Event-Driven‬‬
‫‪ ‬מתבסס על מודל ‪Request \ Response‬‬
‫‪ ‬מספק סביבה אינטואיטיבית‬
‫‪ ‬הפקדים מודיעים לשרת ברגע שמשהו מתרחש‬
‫‪ ‬הלקוח שולח מידע לשרת גם ללא ידעת המשתמש‬
‫‪ ‬השרת יוצר את הפקדים ולכן זוכר את הערכים‬
‫‪ ‬שימוש אוטומטי בשדות נסתרים מאפשרים לשרת‬
‫לזכור את מצב התצוגה של כל פקד‬

Server Control Type
HTML
WEB
Validation
USER

Server
Server
Server
Server

Controls 
Controls 
Controls 
Controls 

‫‪HTML\WEB Server Controls‬‬
‫‪HTML ‬‬
‫‪ ‬ייצוג עבור האלמנטים הרגילים ב ‪HTML‬‬
‫‪ ‬נמצאים בצד השרת‬
‫‪WEB ‬‬
‫‪ ‬מספקים פונקציונליות גבוהה יותר‬
‫‪ ‬מציגים ממשקי משתמש מורכבים‬

‫‪Validation\User Server Controls‬‬
‫‪Validation‬‬
‫‪ ‬בדיקת נתוני המשתמש‬
‫‪ ‬טווח ‪ ,‬ביטוי ‪ ,‬נתוני חובה ‪ ,‬סיכום שגיאות ‪...‬‬
‫‪USER‬‬
‫‪ ‬פקדים המותאמים אישית לפי רצון המשתמש‬

‫אירוע אקטיבי \ פסיבי‬
‫אירוע אקטיבי‬
‫‪ ‬מחייב פעולה מפורשת של המשתמש‬
‫‪ ‬הפעולה מבוצעת במתכוון‬
‫‪ ‬לחיצה על קישור‪ ,‬לחצן ‪ ,‬הזנת טקסט ‪...‬‬
‫‪ ‬רק אירועים אקטיביים מטופלים בשרת‬
‫אירוע פסיבי ‪:‬‬
‫מתרחש שלא במתכוון‬
‫הזזת עכבר ‪ ,‬גרירת תמונה ‪...‬‬
‫אירועים פסיבים מתרחשים בתדירות גבוהה מאד‬
‫לכן הם מטופלים בצד הלקוח ‪JavaScript -‬‬

‫‪Events‬‬
‫‪‬‬
‫‪‬‬

‫לפקדי שרת אירועים רבים‬
‫בכל התרחשות אירוע הלקוח שולח נתונים לשרת‬

‫אירעים נשלחים לשרת בשתי דרכים ‪:‬‬
‫‪ .1‬אירוע מופעל ‪ ‬מייד ברגע ההתרחשות‬
‫‪ .2‬אירוע מופעל ‪ ‬במשלוח יחיד ( או קבוצה ) ‪Submit‬‬

‫רשימת הפרמטרים הסטנדרטית עבור אירוע‬
‫ יתרחש‬CLICK ‫כאשר האירוע‬
‫שיטה זו תופעל בצד השרת‬

‫מייצגים נתונים הנכללים במשלוח‬
‫ האובייקט הקורא לשיטה‬: Obj

<script runat="server">

‫ מידע נוסף‬: E

Sub Button1_Click(obj as object, e as EventArgs)
Label1.Text = "You clicked " & obj.Text & ""
end Sub


‫יציג את הטקסט השרשום על הפקד‬
Button1 : ‫שקרא לשיטה‬


runat="server" Text="Button1" onClick="Button1_Click" />

Obj.Text

‫‪View State‬‬
‫‪ ‬טפסי ‪ WEB‬שומרים את מצב התצוגה ע"י שדות‬
‫נסתרים המיוצרים אוטומטית‬
‫‪State bag ‬‬
‫‪ ‬דרך נוספת לשמירת מידע היא ‪State bag‬‬
‫‪ ‬משתמש לשמירת ערכים שהמשתמש לא הזין כמו‬
‫תוצאת חישוב שהתקבלה ויש לשמור אותה‬

State Bag
ViewState("StartTime") = DateTime.Now

Sub Page_Load(obj as object, e as EventArgs)
if not Page.IsPostBack then
ViewState("StartTime") = DateTime.Now
lblMessage.Text = "Time is now: " & ViewState("StartTime")

end if
end sub
State Bag ‫ הזמן ותאריך הבקשה יאוחסנו ב‬: ‫בפעם הראשונה‬
‫הערך ישמר למרות בקשות שונות שיתרחשו‬

State Bag
‫ שולח את הנתונים ומוכיח כי ערך‬SUBMIT ‫ביצוע‬

‫ נשמר‬State Bag ‫ה‬
Sub Submit(obj as object, e as EventArgs)
lblMessage.Text = "The time is now: " & DateTime.Now & _
"
started at: " & ViewState("StartTime")
end Sub

‫ זמן טעינת הדף לראשונה‬+ ‫יודפס הערך של הזמן הנוכחי‬
‫האובייקט מתרוקן כאשר המשתמש עוזב את הדף‬

‫‪State Bag‬‬

‫הזמן בכל לחיצה על ‪Submit‬‬

‫רק כאשר הדף נטען לראשונה ‪Stae Bag‬‬

‫סדר פעולות כללי‬
‫‪.1‬‬
‫‪.2‬‬
‫‪.3‬‬

‫‪.4‬‬
‫‪.5‬‬
‫‪.6‬‬
‫‪.7‬‬

‫לקוח מבקש טופס‬
‫השרת מייצר קוד ‪HTML‬‬
‫‪ Page_Load‬מתרחש‬
‫השרת שולח את הטופס‬
‫קריאה לשיטות המטפלות באירועים‬
‫לקוח עוזב את הדף‬
‫‪ Page_Unload‬משחרר כל זיכרון שאין בו צורך‬

‫‪AutoPostBack‬‬
‫‪ ‬משלוח מיידי של נתונים בעת התרחשות האירוע‬

AutoPostBack

‫‪AutoPostBack‬‬

‫הטיפול באירועים‬

'‫סיכום חלק א‬
‫ מאפשרים לשרת לעקוב אחר‬Web ‫ טפסי‬
‫המשתמש‬
‫ סוגי פקדים‬4 ‫ מורכבים מ‬WEB ‫ טפסי‬
USER\Validation\WEB\HTML 
runat=server ‫ הסבת פקד ישן‬
Event 
State Bag 
AutoPostBack 

ASP.NET ‫מבוא ל‬
3 '‫מצגת מס‬

ASP.NET ‫ מבוא ל‬: 3 ‫ שיעור‬

www.doronamir.com
MCSD DORON AMIR


Slide 12

ASP.NET ‫מבוא ל‬
3 '‫מצגת מס‬

ASP.NET ‫ מבוא ל‬: 3 ‫ שיעור‬

www.doronamir.com
MCSD DORON AMIR

‫‪Web Forms‬‬

‫‪ Web Form ‬מאפשר ל ‪ asp.net‬לספק בקרה על‬
‫ממשק המשתמש ע"י אובייקטים הנמצאים בשרת‬

‫‪HTML FORMS‬‬
‫‪ ‬מודל ‪Request \ Response‬‬
‫‪ HTML ‬בנוי מפריטים המרכיבים את ממשק המשתמש‬
‫‪ HTML ‬מבוסס על צד הלקוח ‪Client-Based :‬‬
‫‪ ‬רק כאשר מתבצע ‪ SUBMIT‬נשלחים הנתונים‬
‫‪ ‬השרת אינו יודע כיצד נראה הטופס‬
‫‪ ‬השרת אינו יודע לאיזה סוג נתונים לצפות‬
‫‪Client‬‬

‫‪SERVER‬‬

‫‪POST DATA‬‬

‫‪Web Forms‬‬
‫‪ ‬בניגוד ל ‪ HTML‬ה ‪ Web Forms‬מבוססי שרת‬
‫‪ ‬האלמנטים עבור המשתמש נוצרים בשרת‬
‫‪ ‬השרת יודע כיצד הטופס נראה‬
‫‪ ‬השרת מודע לפונקציונליות הטופס‬
‫‪ ‬השרת מודע לסוגי הנתונים הנשלחים מהטופס‬

‫‪Server Controls‬‬
‫‪ ‬פקדי שרת‬
‫‪ ‬מייצגים חלק ממשק המשתמש ‪UI‬‬
‫‪ ‬אובייטים הניתנים לשליטה מלאה בצד השרת‬
‫‪ ‬מכילים אירועים ‪ ,‬מאפיינים ‪ ,‬שיטות ‪..‬‬
‫‪ ‬בעת בקשה מהלקוח ‪ asp.net ,‬ממירה פקדים‬
‫אלה ל ‪ HTML‬המותאם לסוג הדפדפן‬
‫תמיכה ברמה הנמוכה ‪Down Level Support‬‬

‫‪Event-Driven‬‬
‫‪ ‬מתבסס על מודל ‪Request \ Response‬‬
‫‪ ‬מספק סביבה אינטואיטיבית‬
‫‪ ‬הפקדים מודיעים לשרת ברגע שמשהו מתרחש‬
‫‪ ‬הלקוח שולח מידע לשרת גם ללא ידעת המשתמש‬
‫‪ ‬השרת יוצר את הפקדים ולכן זוכר את הערכים‬
‫‪ ‬שימוש אוטומטי בשדות נסתרים מאפשרים לשרת‬
‫לזכור את מצב התצוגה של כל פקד‬

Server Control Type
HTML
WEB
Validation
USER

Server
Server
Server
Server

Controls 
Controls 
Controls 
Controls 

‫‪HTML\WEB Server Controls‬‬
‫‪HTML ‬‬
‫‪ ‬ייצוג עבור האלמנטים הרגילים ב ‪HTML‬‬
‫‪ ‬נמצאים בצד השרת‬
‫‪WEB ‬‬
‫‪ ‬מספקים פונקציונליות גבוהה יותר‬
‫‪ ‬מציגים ממשקי משתמש מורכבים‬

‫‪Validation\User Server Controls‬‬
‫‪Validation‬‬
‫‪ ‬בדיקת נתוני המשתמש‬
‫‪ ‬טווח ‪ ,‬ביטוי ‪ ,‬נתוני חובה ‪ ,‬סיכום שגיאות ‪...‬‬
‫‪USER‬‬
‫‪ ‬פקדים המותאמים אישית לפי רצון המשתמש‬

‫אירוע אקטיבי \ פסיבי‬
‫אירוע אקטיבי‬
‫‪ ‬מחייב פעולה מפורשת של המשתמש‬
‫‪ ‬הפעולה מבוצעת במתכוון‬
‫‪ ‬לחיצה על קישור‪ ,‬לחצן ‪ ,‬הזנת טקסט ‪...‬‬
‫‪ ‬רק אירועים אקטיביים מטופלים בשרת‬
‫אירוע פסיבי ‪:‬‬
‫מתרחש שלא במתכוון‬
‫הזזת עכבר ‪ ,‬גרירת תמונה ‪...‬‬
‫אירועים פסיבים מתרחשים בתדירות גבוהה מאד‬
‫לכן הם מטופלים בצד הלקוח ‪JavaScript -‬‬

‫‪Events‬‬
‫‪‬‬
‫‪‬‬

‫לפקדי שרת אירועים רבים‬
‫בכל התרחשות אירוע הלקוח שולח נתונים לשרת‬

‫אירעים נשלחים לשרת בשתי דרכים ‪:‬‬
‫‪ .1‬אירוע מופעל ‪ ‬מייד ברגע ההתרחשות‬
‫‪ .2‬אירוע מופעל ‪ ‬במשלוח יחיד ( או קבוצה ) ‪Submit‬‬

‫רשימת הפרמטרים הסטנדרטית עבור אירוע‬
‫ יתרחש‬CLICK ‫כאשר האירוע‬
‫שיטה זו תופעל בצד השרת‬

‫מייצגים נתונים הנכללים במשלוח‬
‫ האובייקט הקורא לשיטה‬: Obj

<script runat="server">

‫ מידע נוסף‬: E

Sub Button1_Click(obj as object, e as EventArgs)
Label1.Text = "You clicked " & obj.Text & ""
end Sub


‫יציג את הטקסט השרשום על הפקד‬
Button1 : ‫שקרא לשיטה‬


runat="server" Text="Button1" onClick="Button1_Click" />

Obj.Text

‫‪View State‬‬
‫‪ ‬טפסי ‪ WEB‬שומרים את מצב התצוגה ע"י שדות‬
‫נסתרים המיוצרים אוטומטית‬
‫‪State bag ‬‬
‫‪ ‬דרך נוספת לשמירת מידע היא ‪State bag‬‬
‫‪ ‬משתמש לשמירת ערכים שהמשתמש לא הזין כמו‬
‫תוצאת חישוב שהתקבלה ויש לשמור אותה‬

State Bag
ViewState("StartTime") = DateTime.Now

Sub Page_Load(obj as object, e as EventArgs)
if not Page.IsPostBack then
ViewState("StartTime") = DateTime.Now
lblMessage.Text = "Time is now: " & ViewState("StartTime")

end if
end sub
State Bag ‫ הזמן ותאריך הבקשה יאוחסנו ב‬: ‫בפעם הראשונה‬
‫הערך ישמר למרות בקשות שונות שיתרחשו‬

State Bag
‫ שולח את הנתונים ומוכיח כי ערך‬SUBMIT ‫ביצוע‬

‫ נשמר‬State Bag ‫ה‬
Sub Submit(obj as object, e as EventArgs)
lblMessage.Text = "The time is now: " & DateTime.Now & _
"
started at: " & ViewState("StartTime")
end Sub

‫ זמן טעינת הדף לראשונה‬+ ‫יודפס הערך של הזמן הנוכחי‬
‫האובייקט מתרוקן כאשר המשתמש עוזב את הדף‬

‫‪State Bag‬‬

‫הזמן בכל לחיצה על ‪Submit‬‬

‫רק כאשר הדף נטען לראשונה ‪Stae Bag‬‬

‫סדר פעולות כללי‬
‫‪.1‬‬
‫‪.2‬‬
‫‪.3‬‬

‫‪.4‬‬
‫‪.5‬‬
‫‪.6‬‬
‫‪.7‬‬

‫לקוח מבקש טופס‬
‫השרת מייצר קוד ‪HTML‬‬
‫‪ Page_Load‬מתרחש‬
‫השרת שולח את הטופס‬
‫קריאה לשיטות המטפלות באירועים‬
‫לקוח עוזב את הדף‬
‫‪ Page_Unload‬משחרר כל זיכרון שאין בו צורך‬

‫‪AutoPostBack‬‬
‫‪ ‬משלוח מיידי של נתונים בעת התרחשות האירוע‬

AutoPostBack

‫‪AutoPostBack‬‬

‫הטיפול באירועים‬

'‫סיכום חלק א‬
‫ מאפשרים לשרת לעקוב אחר‬Web ‫ טפסי‬
‫המשתמש‬
‫ סוגי פקדים‬4 ‫ מורכבים מ‬WEB ‫ טפסי‬
USER\Validation\WEB\HTML 
runat=server ‫ הסבת פקד ישן‬
Event 
State Bag 
AutoPostBack 

ASP.NET ‫מבוא ל‬
3 '‫מצגת מס‬

ASP.NET ‫ מבוא ל‬: 3 ‫ שיעור‬

www.doronamir.com
MCSD DORON AMIR


Slide 13

ASP.NET ‫מבוא ל‬
3 '‫מצגת מס‬

ASP.NET ‫ מבוא ל‬: 3 ‫ שיעור‬

www.doronamir.com
MCSD DORON AMIR

‫‪Web Forms‬‬

‫‪ Web Form ‬מאפשר ל ‪ asp.net‬לספק בקרה על‬
‫ממשק המשתמש ע"י אובייקטים הנמצאים בשרת‬

‫‪HTML FORMS‬‬
‫‪ ‬מודל ‪Request \ Response‬‬
‫‪ HTML ‬בנוי מפריטים המרכיבים את ממשק המשתמש‬
‫‪ HTML ‬מבוסס על צד הלקוח ‪Client-Based :‬‬
‫‪ ‬רק כאשר מתבצע ‪ SUBMIT‬נשלחים הנתונים‬
‫‪ ‬השרת אינו יודע כיצד נראה הטופס‬
‫‪ ‬השרת אינו יודע לאיזה סוג נתונים לצפות‬
‫‪Client‬‬

‫‪SERVER‬‬

‫‪POST DATA‬‬

‫‪Web Forms‬‬
‫‪ ‬בניגוד ל ‪ HTML‬ה ‪ Web Forms‬מבוססי שרת‬
‫‪ ‬האלמנטים עבור המשתמש נוצרים בשרת‬
‫‪ ‬השרת יודע כיצד הטופס נראה‬
‫‪ ‬השרת מודע לפונקציונליות הטופס‬
‫‪ ‬השרת מודע לסוגי הנתונים הנשלחים מהטופס‬

‫‪Server Controls‬‬
‫‪ ‬פקדי שרת‬
‫‪ ‬מייצגים חלק ממשק המשתמש ‪UI‬‬
‫‪ ‬אובייטים הניתנים לשליטה מלאה בצד השרת‬
‫‪ ‬מכילים אירועים ‪ ,‬מאפיינים ‪ ,‬שיטות ‪..‬‬
‫‪ ‬בעת בקשה מהלקוח ‪ asp.net ,‬ממירה פקדים‬
‫אלה ל ‪ HTML‬המותאם לסוג הדפדפן‬
‫תמיכה ברמה הנמוכה ‪Down Level Support‬‬

‫‪Event-Driven‬‬
‫‪ ‬מתבסס על מודל ‪Request \ Response‬‬
‫‪ ‬מספק סביבה אינטואיטיבית‬
‫‪ ‬הפקדים מודיעים לשרת ברגע שמשהו מתרחש‬
‫‪ ‬הלקוח שולח מידע לשרת גם ללא ידעת המשתמש‬
‫‪ ‬השרת יוצר את הפקדים ולכן זוכר את הערכים‬
‫‪ ‬שימוש אוטומטי בשדות נסתרים מאפשרים לשרת‬
‫לזכור את מצב התצוגה של כל פקד‬

Server Control Type
HTML
WEB
Validation
USER

Server
Server
Server
Server

Controls 
Controls 
Controls 
Controls 

‫‪HTML\WEB Server Controls‬‬
‫‪HTML ‬‬
‫‪ ‬ייצוג עבור האלמנטים הרגילים ב ‪HTML‬‬
‫‪ ‬נמצאים בצד השרת‬
‫‪WEB ‬‬
‫‪ ‬מספקים פונקציונליות גבוהה יותר‬
‫‪ ‬מציגים ממשקי משתמש מורכבים‬

‫‪Validation\User Server Controls‬‬
‫‪Validation‬‬
‫‪ ‬בדיקת נתוני המשתמש‬
‫‪ ‬טווח ‪ ,‬ביטוי ‪ ,‬נתוני חובה ‪ ,‬סיכום שגיאות ‪...‬‬
‫‪USER‬‬
‫‪ ‬פקדים המותאמים אישית לפי רצון המשתמש‬

‫אירוע אקטיבי \ פסיבי‬
‫אירוע אקטיבי‬
‫‪ ‬מחייב פעולה מפורשת של המשתמש‬
‫‪ ‬הפעולה מבוצעת במתכוון‬
‫‪ ‬לחיצה על קישור‪ ,‬לחצן ‪ ,‬הזנת טקסט ‪...‬‬
‫‪ ‬רק אירועים אקטיביים מטופלים בשרת‬
‫אירוע פסיבי ‪:‬‬
‫מתרחש שלא במתכוון‬
‫הזזת עכבר ‪ ,‬גרירת תמונה ‪...‬‬
‫אירועים פסיבים מתרחשים בתדירות גבוהה מאד‬
‫לכן הם מטופלים בצד הלקוח ‪JavaScript -‬‬

‫‪Events‬‬
‫‪‬‬
‫‪‬‬

‫לפקדי שרת אירועים רבים‬
‫בכל התרחשות אירוע הלקוח שולח נתונים לשרת‬

‫אירעים נשלחים לשרת בשתי דרכים ‪:‬‬
‫‪ .1‬אירוע מופעל ‪ ‬מייד ברגע ההתרחשות‬
‫‪ .2‬אירוע מופעל ‪ ‬במשלוח יחיד ( או קבוצה ) ‪Submit‬‬

‫רשימת הפרמטרים הסטנדרטית עבור אירוע‬
‫ יתרחש‬CLICK ‫כאשר האירוע‬
‫שיטה זו תופעל בצד השרת‬

‫מייצגים נתונים הנכללים במשלוח‬
‫ האובייקט הקורא לשיטה‬: Obj

<script runat="server">

‫ מידע נוסף‬: E

Sub Button1_Click(obj as object, e as EventArgs)
Label1.Text = "You clicked " & obj.Text & ""
end Sub


‫יציג את הטקסט השרשום על הפקד‬
Button1 : ‫שקרא לשיטה‬


runat="server" Text="Button1" onClick="Button1_Click" />

Obj.Text

‫‪View State‬‬
‫‪ ‬טפסי ‪ WEB‬שומרים את מצב התצוגה ע"י שדות‬
‫נסתרים המיוצרים אוטומטית‬
‫‪State bag ‬‬
‫‪ ‬דרך נוספת לשמירת מידע היא ‪State bag‬‬
‫‪ ‬משתמש לשמירת ערכים שהמשתמש לא הזין כמו‬
‫תוצאת חישוב שהתקבלה ויש לשמור אותה‬

State Bag
ViewState("StartTime") = DateTime.Now

Sub Page_Load(obj as object, e as EventArgs)
if not Page.IsPostBack then
ViewState("StartTime") = DateTime.Now
lblMessage.Text = "Time is now: " & ViewState("StartTime")

end if
end sub
State Bag ‫ הזמן ותאריך הבקשה יאוחסנו ב‬: ‫בפעם הראשונה‬
‫הערך ישמר למרות בקשות שונות שיתרחשו‬

State Bag
‫ שולח את הנתונים ומוכיח כי ערך‬SUBMIT ‫ביצוע‬

‫ נשמר‬State Bag ‫ה‬
Sub Submit(obj as object, e as EventArgs)
lblMessage.Text = "The time is now: " & DateTime.Now & _
"
started at: " & ViewState("StartTime")
end Sub

‫ זמן טעינת הדף לראשונה‬+ ‫יודפס הערך של הזמן הנוכחי‬
‫האובייקט מתרוקן כאשר המשתמש עוזב את הדף‬

‫‪State Bag‬‬

‫הזמן בכל לחיצה על ‪Submit‬‬

‫רק כאשר הדף נטען לראשונה ‪Stae Bag‬‬

‫סדר פעולות כללי‬
‫‪.1‬‬
‫‪.2‬‬
‫‪.3‬‬

‫‪.4‬‬
‫‪.5‬‬
‫‪.6‬‬
‫‪.7‬‬

‫לקוח מבקש טופס‬
‫השרת מייצר קוד ‪HTML‬‬
‫‪ Page_Load‬מתרחש‬
‫השרת שולח את הטופס‬
‫קריאה לשיטות המטפלות באירועים‬
‫לקוח עוזב את הדף‬
‫‪ Page_Unload‬משחרר כל זיכרון שאין בו צורך‬

‫‪AutoPostBack‬‬
‫‪ ‬משלוח מיידי של נתונים בעת התרחשות האירוע‬

AutoPostBack

‫‪AutoPostBack‬‬

‫הטיפול באירועים‬

'‫סיכום חלק א‬
‫ מאפשרים לשרת לעקוב אחר‬Web ‫ טפסי‬
‫המשתמש‬
‫ סוגי פקדים‬4 ‫ מורכבים מ‬WEB ‫ טפסי‬
USER\Validation\WEB\HTML 
runat=server ‫ הסבת פקד ישן‬
Event 
State Bag 
AutoPostBack 

ASP.NET ‫מבוא ל‬
3 '‫מצגת מס‬

ASP.NET ‫ מבוא ל‬: 3 ‫ שיעור‬

www.doronamir.com
MCSD DORON AMIR


Slide 14

ASP.NET ‫מבוא ל‬
3 '‫מצגת מס‬

ASP.NET ‫ מבוא ל‬: 3 ‫ שיעור‬

www.doronamir.com
MCSD DORON AMIR

‫‪Web Forms‬‬

‫‪ Web Form ‬מאפשר ל ‪ asp.net‬לספק בקרה על‬
‫ממשק המשתמש ע"י אובייקטים הנמצאים בשרת‬

‫‪HTML FORMS‬‬
‫‪ ‬מודל ‪Request \ Response‬‬
‫‪ HTML ‬בנוי מפריטים המרכיבים את ממשק המשתמש‬
‫‪ HTML ‬מבוסס על צד הלקוח ‪Client-Based :‬‬
‫‪ ‬רק כאשר מתבצע ‪ SUBMIT‬נשלחים הנתונים‬
‫‪ ‬השרת אינו יודע כיצד נראה הטופס‬
‫‪ ‬השרת אינו יודע לאיזה סוג נתונים לצפות‬
‫‪Client‬‬

‫‪SERVER‬‬

‫‪POST DATA‬‬

‫‪Web Forms‬‬
‫‪ ‬בניגוד ל ‪ HTML‬ה ‪ Web Forms‬מבוססי שרת‬
‫‪ ‬האלמנטים עבור המשתמש נוצרים בשרת‬
‫‪ ‬השרת יודע כיצד הטופס נראה‬
‫‪ ‬השרת מודע לפונקציונליות הטופס‬
‫‪ ‬השרת מודע לסוגי הנתונים הנשלחים מהטופס‬

‫‪Server Controls‬‬
‫‪ ‬פקדי שרת‬
‫‪ ‬מייצגים חלק ממשק המשתמש ‪UI‬‬
‫‪ ‬אובייטים הניתנים לשליטה מלאה בצד השרת‬
‫‪ ‬מכילים אירועים ‪ ,‬מאפיינים ‪ ,‬שיטות ‪..‬‬
‫‪ ‬בעת בקשה מהלקוח ‪ asp.net ,‬ממירה פקדים‬
‫אלה ל ‪ HTML‬המותאם לסוג הדפדפן‬
‫תמיכה ברמה הנמוכה ‪Down Level Support‬‬

‫‪Event-Driven‬‬
‫‪ ‬מתבסס על מודל ‪Request \ Response‬‬
‫‪ ‬מספק סביבה אינטואיטיבית‬
‫‪ ‬הפקדים מודיעים לשרת ברגע שמשהו מתרחש‬
‫‪ ‬הלקוח שולח מידע לשרת גם ללא ידעת המשתמש‬
‫‪ ‬השרת יוצר את הפקדים ולכן זוכר את הערכים‬
‫‪ ‬שימוש אוטומטי בשדות נסתרים מאפשרים לשרת‬
‫לזכור את מצב התצוגה של כל פקד‬

Server Control Type
HTML
WEB
Validation
USER

Server
Server
Server
Server

Controls 
Controls 
Controls 
Controls 

‫‪HTML\WEB Server Controls‬‬
‫‪HTML ‬‬
‫‪ ‬ייצוג עבור האלמנטים הרגילים ב ‪HTML‬‬
‫‪ ‬נמצאים בצד השרת‬
‫‪WEB ‬‬
‫‪ ‬מספקים פונקציונליות גבוהה יותר‬
‫‪ ‬מציגים ממשקי משתמש מורכבים‬

‫‪Validation\User Server Controls‬‬
‫‪Validation‬‬
‫‪ ‬בדיקת נתוני המשתמש‬
‫‪ ‬טווח ‪ ,‬ביטוי ‪ ,‬נתוני חובה ‪ ,‬סיכום שגיאות ‪...‬‬
‫‪USER‬‬
‫‪ ‬פקדים המותאמים אישית לפי רצון המשתמש‬

‫אירוע אקטיבי \ פסיבי‬
‫אירוע אקטיבי‬
‫‪ ‬מחייב פעולה מפורשת של המשתמש‬
‫‪ ‬הפעולה מבוצעת במתכוון‬
‫‪ ‬לחיצה על קישור‪ ,‬לחצן ‪ ,‬הזנת טקסט ‪...‬‬
‫‪ ‬רק אירועים אקטיביים מטופלים בשרת‬
‫אירוע פסיבי ‪:‬‬
‫מתרחש שלא במתכוון‬
‫הזזת עכבר ‪ ,‬גרירת תמונה ‪...‬‬
‫אירועים פסיבים מתרחשים בתדירות גבוהה מאד‬
‫לכן הם מטופלים בצד הלקוח ‪JavaScript -‬‬

‫‪Events‬‬
‫‪‬‬
‫‪‬‬

‫לפקדי שרת אירועים רבים‬
‫בכל התרחשות אירוע הלקוח שולח נתונים לשרת‬

‫אירעים נשלחים לשרת בשתי דרכים ‪:‬‬
‫‪ .1‬אירוע מופעל ‪ ‬מייד ברגע ההתרחשות‬
‫‪ .2‬אירוע מופעל ‪ ‬במשלוח יחיד ( או קבוצה ) ‪Submit‬‬

‫רשימת הפרמטרים הסטנדרטית עבור אירוע‬
‫ יתרחש‬CLICK ‫כאשר האירוע‬
‫שיטה זו תופעל בצד השרת‬

‫מייצגים נתונים הנכללים במשלוח‬
‫ האובייקט הקורא לשיטה‬: Obj

<script runat="server">

‫ מידע נוסף‬: E

Sub Button1_Click(obj as object, e as EventArgs)
Label1.Text = "You clicked " & obj.Text & ""
end Sub


‫יציג את הטקסט השרשום על הפקד‬
Button1 : ‫שקרא לשיטה‬


runat="server" Text="Button1" onClick="Button1_Click" />

Obj.Text

‫‪View State‬‬
‫‪ ‬טפסי ‪ WEB‬שומרים את מצב התצוגה ע"י שדות‬
‫נסתרים המיוצרים אוטומטית‬
‫‪State bag ‬‬
‫‪ ‬דרך נוספת לשמירת מידע היא ‪State bag‬‬
‫‪ ‬משתמש לשמירת ערכים שהמשתמש לא הזין כמו‬
‫תוצאת חישוב שהתקבלה ויש לשמור אותה‬

State Bag
ViewState("StartTime") = DateTime.Now

Sub Page_Load(obj as object, e as EventArgs)
if not Page.IsPostBack then
ViewState("StartTime") = DateTime.Now
lblMessage.Text = "Time is now: " & ViewState("StartTime")

end if
end sub
State Bag ‫ הזמן ותאריך הבקשה יאוחסנו ב‬: ‫בפעם הראשונה‬
‫הערך ישמר למרות בקשות שונות שיתרחשו‬

State Bag
‫ שולח את הנתונים ומוכיח כי ערך‬SUBMIT ‫ביצוע‬

‫ נשמר‬State Bag ‫ה‬
Sub Submit(obj as object, e as EventArgs)
lblMessage.Text = "The time is now: " & DateTime.Now & _
"
started at: " & ViewState("StartTime")
end Sub

‫ זמן טעינת הדף לראשונה‬+ ‫יודפס הערך של הזמן הנוכחי‬
‫האובייקט מתרוקן כאשר המשתמש עוזב את הדף‬

‫‪State Bag‬‬

‫הזמן בכל לחיצה על ‪Submit‬‬

‫רק כאשר הדף נטען לראשונה ‪Stae Bag‬‬

‫סדר פעולות כללי‬
‫‪.1‬‬
‫‪.2‬‬
‫‪.3‬‬

‫‪.4‬‬
‫‪.5‬‬
‫‪.6‬‬
‫‪.7‬‬

‫לקוח מבקש טופס‬
‫השרת מייצר קוד ‪HTML‬‬
‫‪ Page_Load‬מתרחש‬
‫השרת שולח את הטופס‬
‫קריאה לשיטות המטפלות באירועים‬
‫לקוח עוזב את הדף‬
‫‪ Page_Unload‬משחרר כל זיכרון שאין בו צורך‬

‫‪AutoPostBack‬‬
‫‪ ‬משלוח מיידי של נתונים בעת התרחשות האירוע‬

AutoPostBack

‫‪AutoPostBack‬‬

‫הטיפול באירועים‬

'‫סיכום חלק א‬
‫ מאפשרים לשרת לעקוב אחר‬Web ‫ טפסי‬
‫המשתמש‬
‫ סוגי פקדים‬4 ‫ מורכבים מ‬WEB ‫ טפסי‬
USER\Validation\WEB\HTML 
runat=server ‫ הסבת פקד ישן‬
Event 
State Bag 
AutoPostBack 

ASP.NET ‫מבוא ל‬
3 '‫מצגת מס‬

ASP.NET ‫ מבוא ל‬: 3 ‫ שיעור‬

www.doronamir.com
MCSD DORON AMIR


Slide 15

ASP.NET ‫מבוא ל‬
3 '‫מצגת מס‬

ASP.NET ‫ מבוא ל‬: 3 ‫ שיעור‬

www.doronamir.com
MCSD DORON AMIR

‫‪Web Forms‬‬

‫‪ Web Form ‬מאפשר ל ‪ asp.net‬לספק בקרה על‬
‫ממשק המשתמש ע"י אובייקטים הנמצאים בשרת‬

‫‪HTML FORMS‬‬
‫‪ ‬מודל ‪Request \ Response‬‬
‫‪ HTML ‬בנוי מפריטים המרכיבים את ממשק המשתמש‬
‫‪ HTML ‬מבוסס על צד הלקוח ‪Client-Based :‬‬
‫‪ ‬רק כאשר מתבצע ‪ SUBMIT‬נשלחים הנתונים‬
‫‪ ‬השרת אינו יודע כיצד נראה הטופס‬
‫‪ ‬השרת אינו יודע לאיזה סוג נתונים לצפות‬
‫‪Client‬‬

‫‪SERVER‬‬

‫‪POST DATA‬‬

‫‪Web Forms‬‬
‫‪ ‬בניגוד ל ‪ HTML‬ה ‪ Web Forms‬מבוססי שרת‬
‫‪ ‬האלמנטים עבור המשתמש נוצרים בשרת‬
‫‪ ‬השרת יודע כיצד הטופס נראה‬
‫‪ ‬השרת מודע לפונקציונליות הטופס‬
‫‪ ‬השרת מודע לסוגי הנתונים הנשלחים מהטופס‬

‫‪Server Controls‬‬
‫‪ ‬פקדי שרת‬
‫‪ ‬מייצגים חלק ממשק המשתמש ‪UI‬‬
‫‪ ‬אובייטים הניתנים לשליטה מלאה בצד השרת‬
‫‪ ‬מכילים אירועים ‪ ,‬מאפיינים ‪ ,‬שיטות ‪..‬‬
‫‪ ‬בעת בקשה מהלקוח ‪ asp.net ,‬ממירה פקדים‬
‫אלה ל ‪ HTML‬המותאם לסוג הדפדפן‬
‫תמיכה ברמה הנמוכה ‪Down Level Support‬‬

‫‪Event-Driven‬‬
‫‪ ‬מתבסס על מודל ‪Request \ Response‬‬
‫‪ ‬מספק סביבה אינטואיטיבית‬
‫‪ ‬הפקדים מודיעים לשרת ברגע שמשהו מתרחש‬
‫‪ ‬הלקוח שולח מידע לשרת גם ללא ידעת המשתמש‬
‫‪ ‬השרת יוצר את הפקדים ולכן זוכר את הערכים‬
‫‪ ‬שימוש אוטומטי בשדות נסתרים מאפשרים לשרת‬
‫לזכור את מצב התצוגה של כל פקד‬

Server Control Type
HTML
WEB
Validation
USER

Server
Server
Server
Server

Controls 
Controls 
Controls 
Controls 

‫‪HTML\WEB Server Controls‬‬
‫‪HTML ‬‬
‫‪ ‬ייצוג עבור האלמנטים הרגילים ב ‪HTML‬‬
‫‪ ‬נמצאים בצד השרת‬
‫‪WEB ‬‬
‫‪ ‬מספקים פונקציונליות גבוהה יותר‬
‫‪ ‬מציגים ממשקי משתמש מורכבים‬

‫‪Validation\User Server Controls‬‬
‫‪Validation‬‬
‫‪ ‬בדיקת נתוני המשתמש‬
‫‪ ‬טווח ‪ ,‬ביטוי ‪ ,‬נתוני חובה ‪ ,‬סיכום שגיאות ‪...‬‬
‫‪USER‬‬
‫‪ ‬פקדים המותאמים אישית לפי רצון המשתמש‬

‫אירוע אקטיבי \ פסיבי‬
‫אירוע אקטיבי‬
‫‪ ‬מחייב פעולה מפורשת של המשתמש‬
‫‪ ‬הפעולה מבוצעת במתכוון‬
‫‪ ‬לחיצה על קישור‪ ,‬לחצן ‪ ,‬הזנת טקסט ‪...‬‬
‫‪ ‬רק אירועים אקטיביים מטופלים בשרת‬
‫אירוע פסיבי ‪:‬‬
‫מתרחש שלא במתכוון‬
‫הזזת עכבר ‪ ,‬גרירת תמונה ‪...‬‬
‫אירועים פסיבים מתרחשים בתדירות גבוהה מאד‬
‫לכן הם מטופלים בצד הלקוח ‪JavaScript -‬‬

‫‪Events‬‬
‫‪‬‬
‫‪‬‬

‫לפקדי שרת אירועים רבים‬
‫בכל התרחשות אירוע הלקוח שולח נתונים לשרת‬

‫אירעים נשלחים לשרת בשתי דרכים ‪:‬‬
‫‪ .1‬אירוע מופעל ‪ ‬מייד ברגע ההתרחשות‬
‫‪ .2‬אירוע מופעל ‪ ‬במשלוח יחיד ( או קבוצה ) ‪Submit‬‬

‫רשימת הפרמטרים הסטנדרטית עבור אירוע‬
‫ יתרחש‬CLICK ‫כאשר האירוע‬
‫שיטה זו תופעל בצד השרת‬

‫מייצגים נתונים הנכללים במשלוח‬
‫ האובייקט הקורא לשיטה‬: Obj

<script runat="server">

‫ מידע נוסף‬: E

Sub Button1_Click(obj as object, e as EventArgs)
Label1.Text = "You clicked " & obj.Text & ""
end Sub


‫יציג את הטקסט השרשום על הפקד‬
Button1 : ‫שקרא לשיטה‬


runat="server" Text="Button1" onClick="Button1_Click" />

Obj.Text

‫‪View State‬‬
‫‪ ‬טפסי ‪ WEB‬שומרים את מצב התצוגה ע"י שדות‬
‫נסתרים המיוצרים אוטומטית‬
‫‪State bag ‬‬
‫‪ ‬דרך נוספת לשמירת מידע היא ‪State bag‬‬
‫‪ ‬משתמש לשמירת ערכים שהמשתמש לא הזין כמו‬
‫תוצאת חישוב שהתקבלה ויש לשמור אותה‬

State Bag
ViewState("StartTime") = DateTime.Now

Sub Page_Load(obj as object, e as EventArgs)
if not Page.IsPostBack then
ViewState("StartTime") = DateTime.Now
lblMessage.Text = "Time is now: " & ViewState("StartTime")

end if
end sub
State Bag ‫ הזמן ותאריך הבקשה יאוחסנו ב‬: ‫בפעם הראשונה‬
‫הערך ישמר למרות בקשות שונות שיתרחשו‬

State Bag
‫ שולח את הנתונים ומוכיח כי ערך‬SUBMIT ‫ביצוע‬

‫ נשמר‬State Bag ‫ה‬
Sub Submit(obj as object, e as EventArgs)
lblMessage.Text = "The time is now: " & DateTime.Now & _
"
started at: " & ViewState("StartTime")
end Sub

‫ זמן טעינת הדף לראשונה‬+ ‫יודפס הערך של הזמן הנוכחי‬
‫האובייקט מתרוקן כאשר המשתמש עוזב את הדף‬

‫‪State Bag‬‬

‫הזמן בכל לחיצה על ‪Submit‬‬

‫רק כאשר הדף נטען לראשונה ‪Stae Bag‬‬

‫סדר פעולות כללי‬
‫‪.1‬‬
‫‪.2‬‬
‫‪.3‬‬

‫‪.4‬‬
‫‪.5‬‬
‫‪.6‬‬
‫‪.7‬‬

‫לקוח מבקש טופס‬
‫השרת מייצר קוד ‪HTML‬‬
‫‪ Page_Load‬מתרחש‬
‫השרת שולח את הטופס‬
‫קריאה לשיטות המטפלות באירועים‬
‫לקוח עוזב את הדף‬
‫‪ Page_Unload‬משחרר כל זיכרון שאין בו צורך‬

‫‪AutoPostBack‬‬
‫‪ ‬משלוח מיידי של נתונים בעת התרחשות האירוע‬

AutoPostBack

‫‪AutoPostBack‬‬

‫הטיפול באירועים‬

'‫סיכום חלק א‬
‫ מאפשרים לשרת לעקוב אחר‬Web ‫ טפסי‬
‫המשתמש‬
‫ סוגי פקדים‬4 ‫ מורכבים מ‬WEB ‫ טפסי‬
USER\Validation\WEB\HTML 
runat=server ‫ הסבת פקד ישן‬
Event 
State Bag 
AutoPostBack 

ASP.NET ‫מבוא ל‬
3 '‫מצגת מס‬

ASP.NET ‫ מבוא ל‬: 3 ‫ שיעור‬

www.doronamir.com
MCSD DORON AMIR


Slide 16

ASP.NET ‫מבוא ל‬
3 '‫מצגת מס‬

ASP.NET ‫ מבוא ל‬: 3 ‫ שיעור‬

www.doronamir.com
MCSD DORON AMIR

‫‪Web Forms‬‬

‫‪ Web Form ‬מאפשר ל ‪ asp.net‬לספק בקרה על‬
‫ממשק המשתמש ע"י אובייקטים הנמצאים בשרת‬

‫‪HTML FORMS‬‬
‫‪ ‬מודל ‪Request \ Response‬‬
‫‪ HTML ‬בנוי מפריטים המרכיבים את ממשק המשתמש‬
‫‪ HTML ‬מבוסס על צד הלקוח ‪Client-Based :‬‬
‫‪ ‬רק כאשר מתבצע ‪ SUBMIT‬נשלחים הנתונים‬
‫‪ ‬השרת אינו יודע כיצד נראה הטופס‬
‫‪ ‬השרת אינו יודע לאיזה סוג נתונים לצפות‬
‫‪Client‬‬

‫‪SERVER‬‬

‫‪POST DATA‬‬

‫‪Web Forms‬‬
‫‪ ‬בניגוד ל ‪ HTML‬ה ‪ Web Forms‬מבוססי שרת‬
‫‪ ‬האלמנטים עבור המשתמש נוצרים בשרת‬
‫‪ ‬השרת יודע כיצד הטופס נראה‬
‫‪ ‬השרת מודע לפונקציונליות הטופס‬
‫‪ ‬השרת מודע לסוגי הנתונים הנשלחים מהטופס‬

‫‪Server Controls‬‬
‫‪ ‬פקדי שרת‬
‫‪ ‬מייצגים חלק ממשק המשתמש ‪UI‬‬
‫‪ ‬אובייטים הניתנים לשליטה מלאה בצד השרת‬
‫‪ ‬מכילים אירועים ‪ ,‬מאפיינים ‪ ,‬שיטות ‪..‬‬
‫‪ ‬בעת בקשה מהלקוח ‪ asp.net ,‬ממירה פקדים‬
‫אלה ל ‪ HTML‬המותאם לסוג הדפדפן‬
‫תמיכה ברמה הנמוכה ‪Down Level Support‬‬

‫‪Event-Driven‬‬
‫‪ ‬מתבסס על מודל ‪Request \ Response‬‬
‫‪ ‬מספק סביבה אינטואיטיבית‬
‫‪ ‬הפקדים מודיעים לשרת ברגע שמשהו מתרחש‬
‫‪ ‬הלקוח שולח מידע לשרת גם ללא ידעת המשתמש‬
‫‪ ‬השרת יוצר את הפקדים ולכן זוכר את הערכים‬
‫‪ ‬שימוש אוטומטי בשדות נסתרים מאפשרים לשרת‬
‫לזכור את מצב התצוגה של כל פקד‬

Server Control Type
HTML
WEB
Validation
USER

Server
Server
Server
Server

Controls 
Controls 
Controls 
Controls 

‫‪HTML\WEB Server Controls‬‬
‫‪HTML ‬‬
‫‪ ‬ייצוג עבור האלמנטים הרגילים ב ‪HTML‬‬
‫‪ ‬נמצאים בצד השרת‬
‫‪WEB ‬‬
‫‪ ‬מספקים פונקציונליות גבוהה יותר‬
‫‪ ‬מציגים ממשקי משתמש מורכבים‬

‫‪Validation\User Server Controls‬‬
‫‪Validation‬‬
‫‪ ‬בדיקת נתוני המשתמש‬
‫‪ ‬טווח ‪ ,‬ביטוי ‪ ,‬נתוני חובה ‪ ,‬סיכום שגיאות ‪...‬‬
‫‪USER‬‬
‫‪ ‬פקדים המותאמים אישית לפי רצון המשתמש‬

‫אירוע אקטיבי \ פסיבי‬
‫אירוע אקטיבי‬
‫‪ ‬מחייב פעולה מפורשת של המשתמש‬
‫‪ ‬הפעולה מבוצעת במתכוון‬
‫‪ ‬לחיצה על קישור‪ ,‬לחצן ‪ ,‬הזנת טקסט ‪...‬‬
‫‪ ‬רק אירועים אקטיביים מטופלים בשרת‬
‫אירוע פסיבי ‪:‬‬
‫מתרחש שלא במתכוון‬
‫הזזת עכבר ‪ ,‬גרירת תמונה ‪...‬‬
‫אירועים פסיבים מתרחשים בתדירות גבוהה מאד‬
‫לכן הם מטופלים בצד הלקוח ‪JavaScript -‬‬

‫‪Events‬‬
‫‪‬‬
‫‪‬‬

‫לפקדי שרת אירועים רבים‬
‫בכל התרחשות אירוע הלקוח שולח נתונים לשרת‬

‫אירעים נשלחים לשרת בשתי דרכים ‪:‬‬
‫‪ .1‬אירוע מופעל ‪ ‬מייד ברגע ההתרחשות‬
‫‪ .2‬אירוע מופעל ‪ ‬במשלוח יחיד ( או קבוצה ) ‪Submit‬‬

‫רשימת הפרמטרים הסטנדרטית עבור אירוע‬
‫ יתרחש‬CLICK ‫כאשר האירוע‬
‫שיטה זו תופעל בצד השרת‬

‫מייצגים נתונים הנכללים במשלוח‬
‫ האובייקט הקורא לשיטה‬: Obj

<script runat="server">

‫ מידע נוסף‬: E

Sub Button1_Click(obj as object, e as EventArgs)
Label1.Text = "You clicked " & obj.Text & ""
end Sub


‫יציג את הטקסט השרשום על הפקד‬
Button1 : ‫שקרא לשיטה‬


runat="server" Text="Button1" onClick="Button1_Click" />

Obj.Text

‫‪View State‬‬
‫‪ ‬טפסי ‪ WEB‬שומרים את מצב התצוגה ע"י שדות‬
‫נסתרים המיוצרים אוטומטית‬
‫‪State bag ‬‬
‫‪ ‬דרך נוספת לשמירת מידע היא ‪State bag‬‬
‫‪ ‬משתמש לשמירת ערכים שהמשתמש לא הזין כמו‬
‫תוצאת חישוב שהתקבלה ויש לשמור אותה‬

State Bag
ViewState("StartTime") = DateTime.Now

Sub Page_Load(obj as object, e as EventArgs)
if not Page.IsPostBack then
ViewState("StartTime") = DateTime.Now
lblMessage.Text = "Time is now: " & ViewState("StartTime")

end if
end sub
State Bag ‫ הזמן ותאריך הבקשה יאוחסנו ב‬: ‫בפעם הראשונה‬
‫הערך ישמר למרות בקשות שונות שיתרחשו‬

State Bag
‫ שולח את הנתונים ומוכיח כי ערך‬SUBMIT ‫ביצוע‬

‫ נשמר‬State Bag ‫ה‬
Sub Submit(obj as object, e as EventArgs)
lblMessage.Text = "The time is now: " & DateTime.Now & _
"
started at: " & ViewState("StartTime")
end Sub

‫ זמן טעינת הדף לראשונה‬+ ‫יודפס הערך של הזמן הנוכחי‬
‫האובייקט מתרוקן כאשר המשתמש עוזב את הדף‬

‫‪State Bag‬‬

‫הזמן בכל לחיצה על ‪Submit‬‬

‫רק כאשר הדף נטען לראשונה ‪Stae Bag‬‬

‫סדר פעולות כללי‬
‫‪.1‬‬
‫‪.2‬‬
‫‪.3‬‬

‫‪.4‬‬
‫‪.5‬‬
‫‪.6‬‬
‫‪.7‬‬

‫לקוח מבקש טופס‬
‫השרת מייצר קוד ‪HTML‬‬
‫‪ Page_Load‬מתרחש‬
‫השרת שולח את הטופס‬
‫קריאה לשיטות המטפלות באירועים‬
‫לקוח עוזב את הדף‬
‫‪ Page_Unload‬משחרר כל זיכרון שאין בו צורך‬

‫‪AutoPostBack‬‬
‫‪ ‬משלוח מיידי של נתונים בעת התרחשות האירוע‬

AutoPostBack

‫‪AutoPostBack‬‬

‫הטיפול באירועים‬

'‫סיכום חלק א‬
‫ מאפשרים לשרת לעקוב אחר‬Web ‫ טפסי‬
‫המשתמש‬
‫ סוגי פקדים‬4 ‫ מורכבים מ‬WEB ‫ טפסי‬
USER\Validation\WEB\HTML 
runat=server ‫ הסבת פקד ישן‬
Event 
State Bag 
AutoPostBack 

ASP.NET ‫מבוא ל‬
3 '‫מצגת מס‬

ASP.NET ‫ מבוא ל‬: 3 ‫ שיעור‬

www.doronamir.com
MCSD DORON AMIR


Slide 17

ASP.NET ‫מבוא ל‬
3 '‫מצגת מס‬

ASP.NET ‫ מבוא ל‬: 3 ‫ שיעור‬

www.doronamir.com
MCSD DORON AMIR

‫‪Web Forms‬‬

‫‪ Web Form ‬מאפשר ל ‪ asp.net‬לספק בקרה על‬
‫ממשק המשתמש ע"י אובייקטים הנמצאים בשרת‬

‫‪HTML FORMS‬‬
‫‪ ‬מודל ‪Request \ Response‬‬
‫‪ HTML ‬בנוי מפריטים המרכיבים את ממשק המשתמש‬
‫‪ HTML ‬מבוסס על צד הלקוח ‪Client-Based :‬‬
‫‪ ‬רק כאשר מתבצע ‪ SUBMIT‬נשלחים הנתונים‬
‫‪ ‬השרת אינו יודע כיצד נראה הטופס‬
‫‪ ‬השרת אינו יודע לאיזה סוג נתונים לצפות‬
‫‪Client‬‬

‫‪SERVER‬‬

‫‪POST DATA‬‬

‫‪Web Forms‬‬
‫‪ ‬בניגוד ל ‪ HTML‬ה ‪ Web Forms‬מבוססי שרת‬
‫‪ ‬האלמנטים עבור המשתמש נוצרים בשרת‬
‫‪ ‬השרת יודע כיצד הטופס נראה‬
‫‪ ‬השרת מודע לפונקציונליות הטופס‬
‫‪ ‬השרת מודע לסוגי הנתונים הנשלחים מהטופס‬

‫‪Server Controls‬‬
‫‪ ‬פקדי שרת‬
‫‪ ‬מייצגים חלק ממשק המשתמש ‪UI‬‬
‫‪ ‬אובייטים הניתנים לשליטה מלאה בצד השרת‬
‫‪ ‬מכילים אירועים ‪ ,‬מאפיינים ‪ ,‬שיטות ‪..‬‬
‫‪ ‬בעת בקשה מהלקוח ‪ asp.net ,‬ממירה פקדים‬
‫אלה ל ‪ HTML‬המותאם לסוג הדפדפן‬
‫תמיכה ברמה הנמוכה ‪Down Level Support‬‬

‫‪Event-Driven‬‬
‫‪ ‬מתבסס על מודל ‪Request \ Response‬‬
‫‪ ‬מספק סביבה אינטואיטיבית‬
‫‪ ‬הפקדים מודיעים לשרת ברגע שמשהו מתרחש‬
‫‪ ‬הלקוח שולח מידע לשרת גם ללא ידעת המשתמש‬
‫‪ ‬השרת יוצר את הפקדים ולכן זוכר את הערכים‬
‫‪ ‬שימוש אוטומטי בשדות נסתרים מאפשרים לשרת‬
‫לזכור את מצב התצוגה של כל פקד‬

Server Control Type
HTML
WEB
Validation
USER

Server
Server
Server
Server

Controls 
Controls 
Controls 
Controls 

‫‪HTML\WEB Server Controls‬‬
‫‪HTML ‬‬
‫‪ ‬ייצוג עבור האלמנטים הרגילים ב ‪HTML‬‬
‫‪ ‬נמצאים בצד השרת‬
‫‪WEB ‬‬
‫‪ ‬מספקים פונקציונליות גבוהה יותר‬
‫‪ ‬מציגים ממשקי משתמש מורכבים‬

‫‪Validation\User Server Controls‬‬
‫‪Validation‬‬
‫‪ ‬בדיקת נתוני המשתמש‬
‫‪ ‬טווח ‪ ,‬ביטוי ‪ ,‬נתוני חובה ‪ ,‬סיכום שגיאות ‪...‬‬
‫‪USER‬‬
‫‪ ‬פקדים המותאמים אישית לפי רצון המשתמש‬

‫אירוע אקטיבי \ פסיבי‬
‫אירוע אקטיבי‬
‫‪ ‬מחייב פעולה מפורשת של המשתמש‬
‫‪ ‬הפעולה מבוצעת במתכוון‬
‫‪ ‬לחיצה על קישור‪ ,‬לחצן ‪ ,‬הזנת טקסט ‪...‬‬
‫‪ ‬רק אירועים אקטיביים מטופלים בשרת‬
‫אירוע פסיבי ‪:‬‬
‫מתרחש שלא במתכוון‬
‫הזזת עכבר ‪ ,‬גרירת תמונה ‪...‬‬
‫אירועים פסיבים מתרחשים בתדירות גבוהה מאד‬
‫לכן הם מטופלים בצד הלקוח ‪JavaScript -‬‬

‫‪Events‬‬
‫‪‬‬
‫‪‬‬

‫לפקדי שרת אירועים רבים‬
‫בכל התרחשות אירוע הלקוח שולח נתונים לשרת‬

‫אירעים נשלחים לשרת בשתי דרכים ‪:‬‬
‫‪ .1‬אירוע מופעל ‪ ‬מייד ברגע ההתרחשות‬
‫‪ .2‬אירוע מופעל ‪ ‬במשלוח יחיד ( או קבוצה ) ‪Submit‬‬

‫רשימת הפרמטרים הסטנדרטית עבור אירוע‬
‫ יתרחש‬CLICK ‫כאשר האירוע‬
‫שיטה זו תופעל בצד השרת‬

‫מייצגים נתונים הנכללים במשלוח‬
‫ האובייקט הקורא לשיטה‬: Obj

<script runat="server">

‫ מידע נוסף‬: E

Sub Button1_Click(obj as object, e as EventArgs)
Label1.Text = "You clicked " & obj.Text & ""
end Sub


‫יציג את הטקסט השרשום על הפקד‬
Button1 : ‫שקרא לשיטה‬


runat="server" Text="Button1" onClick="Button1_Click" />

Obj.Text

‫‪View State‬‬
‫‪ ‬טפסי ‪ WEB‬שומרים את מצב התצוגה ע"י שדות‬
‫נסתרים המיוצרים אוטומטית‬
‫‪State bag ‬‬
‫‪ ‬דרך נוספת לשמירת מידע היא ‪State bag‬‬
‫‪ ‬משתמש לשמירת ערכים שהמשתמש לא הזין כמו‬
‫תוצאת חישוב שהתקבלה ויש לשמור אותה‬

State Bag
ViewState("StartTime") = DateTime.Now

Sub Page_Load(obj as object, e as EventArgs)
if not Page.IsPostBack then
ViewState("StartTime") = DateTime.Now
lblMessage.Text = "Time is now: " & ViewState("StartTime")

end if
end sub
State Bag ‫ הזמן ותאריך הבקשה יאוחסנו ב‬: ‫בפעם הראשונה‬
‫הערך ישמר למרות בקשות שונות שיתרחשו‬

State Bag
‫ שולח את הנתונים ומוכיח כי ערך‬SUBMIT ‫ביצוע‬

‫ נשמר‬State Bag ‫ה‬
Sub Submit(obj as object, e as EventArgs)
lblMessage.Text = "The time is now: " & DateTime.Now & _
"
started at: " & ViewState("StartTime")
end Sub

‫ זמן טעינת הדף לראשונה‬+ ‫יודפס הערך של הזמן הנוכחי‬
‫האובייקט מתרוקן כאשר המשתמש עוזב את הדף‬

‫‪State Bag‬‬

‫הזמן בכל לחיצה על ‪Submit‬‬

‫רק כאשר הדף נטען לראשונה ‪Stae Bag‬‬

‫סדר פעולות כללי‬
‫‪.1‬‬
‫‪.2‬‬
‫‪.3‬‬

‫‪.4‬‬
‫‪.5‬‬
‫‪.6‬‬
‫‪.7‬‬

‫לקוח מבקש טופס‬
‫השרת מייצר קוד ‪HTML‬‬
‫‪ Page_Load‬מתרחש‬
‫השרת שולח את הטופס‬
‫קריאה לשיטות המטפלות באירועים‬
‫לקוח עוזב את הדף‬
‫‪ Page_Unload‬משחרר כל זיכרון שאין בו צורך‬

‫‪AutoPostBack‬‬
‫‪ ‬משלוח מיידי של נתונים בעת התרחשות האירוע‬

AutoPostBack

‫‪AutoPostBack‬‬

‫הטיפול באירועים‬

'‫סיכום חלק א‬
‫ מאפשרים לשרת לעקוב אחר‬Web ‫ טפסי‬
‫המשתמש‬
‫ סוגי פקדים‬4 ‫ מורכבים מ‬WEB ‫ טפסי‬
USER\Validation\WEB\HTML 
runat=server ‫ הסבת פקד ישן‬
Event 
State Bag 
AutoPostBack 

ASP.NET ‫מבוא ל‬
3 '‫מצגת מס‬

ASP.NET ‫ מבוא ל‬: 3 ‫ שיעור‬

www.doronamir.com
MCSD DORON AMIR


Slide 18

ASP.NET ‫מבוא ל‬
3 '‫מצגת מס‬

ASP.NET ‫ מבוא ל‬: 3 ‫ שיעור‬

www.doronamir.com
MCSD DORON AMIR

‫‪Web Forms‬‬

‫‪ Web Form ‬מאפשר ל ‪ asp.net‬לספק בקרה על‬
‫ממשק המשתמש ע"י אובייקטים הנמצאים בשרת‬

‫‪HTML FORMS‬‬
‫‪ ‬מודל ‪Request \ Response‬‬
‫‪ HTML ‬בנוי מפריטים המרכיבים את ממשק המשתמש‬
‫‪ HTML ‬מבוסס על צד הלקוח ‪Client-Based :‬‬
‫‪ ‬רק כאשר מתבצע ‪ SUBMIT‬נשלחים הנתונים‬
‫‪ ‬השרת אינו יודע כיצד נראה הטופס‬
‫‪ ‬השרת אינו יודע לאיזה סוג נתונים לצפות‬
‫‪Client‬‬

‫‪SERVER‬‬

‫‪POST DATA‬‬

‫‪Web Forms‬‬
‫‪ ‬בניגוד ל ‪ HTML‬ה ‪ Web Forms‬מבוססי שרת‬
‫‪ ‬האלמנטים עבור המשתמש נוצרים בשרת‬
‫‪ ‬השרת יודע כיצד הטופס נראה‬
‫‪ ‬השרת מודע לפונקציונליות הטופס‬
‫‪ ‬השרת מודע לסוגי הנתונים הנשלחים מהטופס‬

‫‪Server Controls‬‬
‫‪ ‬פקדי שרת‬
‫‪ ‬מייצגים חלק ממשק המשתמש ‪UI‬‬
‫‪ ‬אובייטים הניתנים לשליטה מלאה בצד השרת‬
‫‪ ‬מכילים אירועים ‪ ,‬מאפיינים ‪ ,‬שיטות ‪..‬‬
‫‪ ‬בעת בקשה מהלקוח ‪ asp.net ,‬ממירה פקדים‬
‫אלה ל ‪ HTML‬המותאם לסוג הדפדפן‬
‫תמיכה ברמה הנמוכה ‪Down Level Support‬‬

‫‪Event-Driven‬‬
‫‪ ‬מתבסס על מודל ‪Request \ Response‬‬
‫‪ ‬מספק סביבה אינטואיטיבית‬
‫‪ ‬הפקדים מודיעים לשרת ברגע שמשהו מתרחש‬
‫‪ ‬הלקוח שולח מידע לשרת גם ללא ידעת המשתמש‬
‫‪ ‬השרת יוצר את הפקדים ולכן זוכר את הערכים‬
‫‪ ‬שימוש אוטומטי בשדות נסתרים מאפשרים לשרת‬
‫לזכור את מצב התצוגה של כל פקד‬

Server Control Type
HTML
WEB
Validation
USER

Server
Server
Server
Server

Controls 
Controls 
Controls 
Controls 

‫‪HTML\WEB Server Controls‬‬
‫‪HTML ‬‬
‫‪ ‬ייצוג עבור האלמנטים הרגילים ב ‪HTML‬‬
‫‪ ‬נמצאים בצד השרת‬
‫‪WEB ‬‬
‫‪ ‬מספקים פונקציונליות גבוהה יותר‬
‫‪ ‬מציגים ממשקי משתמש מורכבים‬

‫‪Validation\User Server Controls‬‬
‫‪Validation‬‬
‫‪ ‬בדיקת נתוני המשתמש‬
‫‪ ‬טווח ‪ ,‬ביטוי ‪ ,‬נתוני חובה ‪ ,‬סיכום שגיאות ‪...‬‬
‫‪USER‬‬
‫‪ ‬פקדים המותאמים אישית לפי רצון המשתמש‬

‫אירוע אקטיבי \ פסיבי‬
‫אירוע אקטיבי‬
‫‪ ‬מחייב פעולה מפורשת של המשתמש‬
‫‪ ‬הפעולה מבוצעת במתכוון‬
‫‪ ‬לחיצה על קישור‪ ,‬לחצן ‪ ,‬הזנת טקסט ‪...‬‬
‫‪ ‬רק אירועים אקטיביים מטופלים בשרת‬
‫אירוע פסיבי ‪:‬‬
‫מתרחש שלא במתכוון‬
‫הזזת עכבר ‪ ,‬גרירת תמונה ‪...‬‬
‫אירועים פסיבים מתרחשים בתדירות גבוהה מאד‬
‫לכן הם מטופלים בצד הלקוח ‪JavaScript -‬‬

‫‪Events‬‬
‫‪‬‬
‫‪‬‬

‫לפקדי שרת אירועים רבים‬
‫בכל התרחשות אירוע הלקוח שולח נתונים לשרת‬

‫אירעים נשלחים לשרת בשתי דרכים ‪:‬‬
‫‪ .1‬אירוע מופעל ‪ ‬מייד ברגע ההתרחשות‬
‫‪ .2‬אירוע מופעל ‪ ‬במשלוח יחיד ( או קבוצה ) ‪Submit‬‬

‫רשימת הפרמטרים הסטנדרטית עבור אירוע‬
‫ יתרחש‬CLICK ‫כאשר האירוע‬
‫שיטה זו תופעל בצד השרת‬

‫מייצגים נתונים הנכללים במשלוח‬
‫ האובייקט הקורא לשיטה‬: Obj

<script runat="server">

‫ מידע נוסף‬: E

Sub Button1_Click(obj as object, e as EventArgs)
Label1.Text = "You clicked " & obj.Text & ""
end Sub


‫יציג את הטקסט השרשום על הפקד‬
Button1 : ‫שקרא לשיטה‬


runat="server" Text="Button1" onClick="Button1_Click" />

Obj.Text

‫‪View State‬‬
‫‪ ‬טפסי ‪ WEB‬שומרים את מצב התצוגה ע"י שדות‬
‫נסתרים המיוצרים אוטומטית‬
‫‪State bag ‬‬
‫‪ ‬דרך נוספת לשמירת מידע היא ‪State bag‬‬
‫‪ ‬משתמש לשמירת ערכים שהמשתמש לא הזין כמו‬
‫תוצאת חישוב שהתקבלה ויש לשמור אותה‬

State Bag
ViewState("StartTime") = DateTime.Now

Sub Page_Load(obj as object, e as EventArgs)
if not Page.IsPostBack then
ViewState("StartTime") = DateTime.Now
lblMessage.Text = "Time is now: " & ViewState("StartTime")

end if
end sub
State Bag ‫ הזמן ותאריך הבקשה יאוחסנו ב‬: ‫בפעם הראשונה‬
‫הערך ישמר למרות בקשות שונות שיתרחשו‬

State Bag
‫ שולח את הנתונים ומוכיח כי ערך‬SUBMIT ‫ביצוע‬

‫ נשמר‬State Bag ‫ה‬
Sub Submit(obj as object, e as EventArgs)
lblMessage.Text = "The time is now: " & DateTime.Now & _
"
started at: " & ViewState("StartTime")
end Sub

‫ זמן טעינת הדף לראשונה‬+ ‫יודפס הערך של הזמן הנוכחי‬
‫האובייקט מתרוקן כאשר המשתמש עוזב את הדף‬

‫‪State Bag‬‬

‫הזמן בכל לחיצה על ‪Submit‬‬

‫רק כאשר הדף נטען לראשונה ‪Stae Bag‬‬

‫סדר פעולות כללי‬
‫‪.1‬‬
‫‪.2‬‬
‫‪.3‬‬

‫‪.4‬‬
‫‪.5‬‬
‫‪.6‬‬
‫‪.7‬‬

‫לקוח מבקש טופס‬
‫השרת מייצר קוד ‪HTML‬‬
‫‪ Page_Load‬מתרחש‬
‫השרת שולח את הטופס‬
‫קריאה לשיטות המטפלות באירועים‬
‫לקוח עוזב את הדף‬
‫‪ Page_Unload‬משחרר כל זיכרון שאין בו צורך‬

‫‪AutoPostBack‬‬
‫‪ ‬משלוח מיידי של נתונים בעת התרחשות האירוע‬

AutoPostBack

‫‪AutoPostBack‬‬

‫הטיפול באירועים‬

'‫סיכום חלק א‬
‫ מאפשרים לשרת לעקוב אחר‬Web ‫ טפסי‬
‫המשתמש‬
‫ סוגי פקדים‬4 ‫ מורכבים מ‬WEB ‫ טפסי‬
USER\Validation\WEB\HTML 
runat=server ‫ הסבת פקד ישן‬
Event 
State Bag 
AutoPostBack 

ASP.NET ‫מבוא ל‬
3 '‫מצגת מס‬

ASP.NET ‫ מבוא ל‬: 3 ‫ שיעור‬

www.doronamir.com
MCSD DORON AMIR


Slide 19

ASP.NET ‫מבוא ל‬
3 '‫מצגת מס‬

ASP.NET ‫ מבוא ל‬: 3 ‫ שיעור‬

www.doronamir.com
MCSD DORON AMIR

‫‪Web Forms‬‬

‫‪ Web Form ‬מאפשר ל ‪ asp.net‬לספק בקרה על‬
‫ממשק המשתמש ע"י אובייקטים הנמצאים בשרת‬

‫‪HTML FORMS‬‬
‫‪ ‬מודל ‪Request \ Response‬‬
‫‪ HTML ‬בנוי מפריטים המרכיבים את ממשק המשתמש‬
‫‪ HTML ‬מבוסס על צד הלקוח ‪Client-Based :‬‬
‫‪ ‬רק כאשר מתבצע ‪ SUBMIT‬נשלחים הנתונים‬
‫‪ ‬השרת אינו יודע כיצד נראה הטופס‬
‫‪ ‬השרת אינו יודע לאיזה סוג נתונים לצפות‬
‫‪Client‬‬

‫‪SERVER‬‬

‫‪POST DATA‬‬

‫‪Web Forms‬‬
‫‪ ‬בניגוד ל ‪ HTML‬ה ‪ Web Forms‬מבוססי שרת‬
‫‪ ‬האלמנטים עבור המשתמש נוצרים בשרת‬
‫‪ ‬השרת יודע כיצד הטופס נראה‬
‫‪ ‬השרת מודע לפונקציונליות הטופס‬
‫‪ ‬השרת מודע לסוגי הנתונים הנשלחים מהטופס‬

‫‪Server Controls‬‬
‫‪ ‬פקדי שרת‬
‫‪ ‬מייצגים חלק ממשק המשתמש ‪UI‬‬
‫‪ ‬אובייטים הניתנים לשליטה מלאה בצד השרת‬
‫‪ ‬מכילים אירועים ‪ ,‬מאפיינים ‪ ,‬שיטות ‪..‬‬
‫‪ ‬בעת בקשה מהלקוח ‪ asp.net ,‬ממירה פקדים‬
‫אלה ל ‪ HTML‬המותאם לסוג הדפדפן‬
‫תמיכה ברמה הנמוכה ‪Down Level Support‬‬

‫‪Event-Driven‬‬
‫‪ ‬מתבסס על מודל ‪Request \ Response‬‬
‫‪ ‬מספק סביבה אינטואיטיבית‬
‫‪ ‬הפקדים מודיעים לשרת ברגע שמשהו מתרחש‬
‫‪ ‬הלקוח שולח מידע לשרת גם ללא ידעת המשתמש‬
‫‪ ‬השרת יוצר את הפקדים ולכן זוכר את הערכים‬
‫‪ ‬שימוש אוטומטי בשדות נסתרים מאפשרים לשרת‬
‫לזכור את מצב התצוגה של כל פקד‬

Server Control Type
HTML
WEB
Validation
USER

Server
Server
Server
Server

Controls 
Controls 
Controls 
Controls 

‫‪HTML\WEB Server Controls‬‬
‫‪HTML ‬‬
‫‪ ‬ייצוג עבור האלמנטים הרגילים ב ‪HTML‬‬
‫‪ ‬נמצאים בצד השרת‬
‫‪WEB ‬‬
‫‪ ‬מספקים פונקציונליות גבוהה יותר‬
‫‪ ‬מציגים ממשקי משתמש מורכבים‬

‫‪Validation\User Server Controls‬‬
‫‪Validation‬‬
‫‪ ‬בדיקת נתוני המשתמש‬
‫‪ ‬טווח ‪ ,‬ביטוי ‪ ,‬נתוני חובה ‪ ,‬סיכום שגיאות ‪...‬‬
‫‪USER‬‬
‫‪ ‬פקדים המותאמים אישית לפי רצון המשתמש‬

‫אירוע אקטיבי \ פסיבי‬
‫אירוע אקטיבי‬
‫‪ ‬מחייב פעולה מפורשת של המשתמש‬
‫‪ ‬הפעולה מבוצעת במתכוון‬
‫‪ ‬לחיצה על קישור‪ ,‬לחצן ‪ ,‬הזנת טקסט ‪...‬‬
‫‪ ‬רק אירועים אקטיביים מטופלים בשרת‬
‫אירוע פסיבי ‪:‬‬
‫מתרחש שלא במתכוון‬
‫הזזת עכבר ‪ ,‬גרירת תמונה ‪...‬‬
‫אירועים פסיבים מתרחשים בתדירות גבוהה מאד‬
‫לכן הם מטופלים בצד הלקוח ‪JavaScript -‬‬

‫‪Events‬‬
‫‪‬‬
‫‪‬‬

‫לפקדי שרת אירועים רבים‬
‫בכל התרחשות אירוע הלקוח שולח נתונים לשרת‬

‫אירעים נשלחים לשרת בשתי דרכים ‪:‬‬
‫‪ .1‬אירוע מופעל ‪ ‬מייד ברגע ההתרחשות‬
‫‪ .2‬אירוע מופעל ‪ ‬במשלוח יחיד ( או קבוצה ) ‪Submit‬‬

‫רשימת הפרמטרים הסטנדרטית עבור אירוע‬
‫ יתרחש‬CLICK ‫כאשר האירוע‬
‫שיטה זו תופעל בצד השרת‬

‫מייצגים נתונים הנכללים במשלוח‬
‫ האובייקט הקורא לשיטה‬: Obj

<script runat="server">

‫ מידע נוסף‬: E

Sub Button1_Click(obj as object, e as EventArgs)
Label1.Text = "You clicked " & obj.Text & ""
end Sub


‫יציג את הטקסט השרשום על הפקד‬
Button1 : ‫שקרא לשיטה‬


runat="server" Text="Button1" onClick="Button1_Click" />

Obj.Text

‫‪View State‬‬
‫‪ ‬טפסי ‪ WEB‬שומרים את מצב התצוגה ע"י שדות‬
‫נסתרים המיוצרים אוטומטית‬
‫‪State bag ‬‬
‫‪ ‬דרך נוספת לשמירת מידע היא ‪State bag‬‬
‫‪ ‬משתמש לשמירת ערכים שהמשתמש לא הזין כמו‬
‫תוצאת חישוב שהתקבלה ויש לשמור אותה‬

State Bag
ViewState("StartTime") = DateTime.Now

Sub Page_Load(obj as object, e as EventArgs)
if not Page.IsPostBack then
ViewState("StartTime") = DateTime.Now
lblMessage.Text = "Time is now: " & ViewState("StartTime")

end if
end sub
State Bag ‫ הזמן ותאריך הבקשה יאוחסנו ב‬: ‫בפעם הראשונה‬
‫הערך ישמר למרות בקשות שונות שיתרחשו‬

State Bag
‫ שולח את הנתונים ומוכיח כי ערך‬SUBMIT ‫ביצוע‬

‫ נשמר‬State Bag ‫ה‬
Sub Submit(obj as object, e as EventArgs)
lblMessage.Text = "The time is now: " & DateTime.Now & _
"
started at: " & ViewState("StartTime")
end Sub

‫ זמן טעינת הדף לראשונה‬+ ‫יודפס הערך של הזמן הנוכחי‬
‫האובייקט מתרוקן כאשר המשתמש עוזב את הדף‬

‫‪State Bag‬‬

‫הזמן בכל לחיצה על ‪Submit‬‬

‫רק כאשר הדף נטען לראשונה ‪Stae Bag‬‬

‫סדר פעולות כללי‬
‫‪.1‬‬
‫‪.2‬‬
‫‪.3‬‬

‫‪.4‬‬
‫‪.5‬‬
‫‪.6‬‬
‫‪.7‬‬

‫לקוח מבקש טופס‬
‫השרת מייצר קוד ‪HTML‬‬
‫‪ Page_Load‬מתרחש‬
‫השרת שולח את הטופס‬
‫קריאה לשיטות המטפלות באירועים‬
‫לקוח עוזב את הדף‬
‫‪ Page_Unload‬משחרר כל זיכרון שאין בו צורך‬

‫‪AutoPostBack‬‬
‫‪ ‬משלוח מיידי של נתונים בעת התרחשות האירוע‬

AutoPostBack

‫‪AutoPostBack‬‬

‫הטיפול באירועים‬

'‫סיכום חלק א‬
‫ מאפשרים לשרת לעקוב אחר‬Web ‫ טפסי‬
‫המשתמש‬
‫ סוגי פקדים‬4 ‫ מורכבים מ‬WEB ‫ טפסי‬
USER\Validation\WEB\HTML 
runat=server ‫ הסבת פקד ישן‬
Event 
State Bag 
AutoPostBack 

ASP.NET ‫מבוא ל‬
3 '‫מצגת מס‬

ASP.NET ‫ מבוא ל‬: 3 ‫ שיעור‬

www.doronamir.com
MCSD DORON AMIR


Slide 20

ASP.NET ‫מבוא ל‬
3 '‫מצגת מס‬

ASP.NET ‫ מבוא ל‬: 3 ‫ שיעור‬

www.doronamir.com
MCSD DORON AMIR

‫‪Web Forms‬‬

‫‪ Web Form ‬מאפשר ל ‪ asp.net‬לספק בקרה על‬
‫ממשק המשתמש ע"י אובייקטים הנמצאים בשרת‬

‫‪HTML FORMS‬‬
‫‪ ‬מודל ‪Request \ Response‬‬
‫‪ HTML ‬בנוי מפריטים המרכיבים את ממשק המשתמש‬
‫‪ HTML ‬מבוסס על צד הלקוח ‪Client-Based :‬‬
‫‪ ‬רק כאשר מתבצע ‪ SUBMIT‬נשלחים הנתונים‬
‫‪ ‬השרת אינו יודע כיצד נראה הטופס‬
‫‪ ‬השרת אינו יודע לאיזה סוג נתונים לצפות‬
‫‪Client‬‬

‫‪SERVER‬‬

‫‪POST DATA‬‬

‫‪Web Forms‬‬
‫‪ ‬בניגוד ל ‪ HTML‬ה ‪ Web Forms‬מבוססי שרת‬
‫‪ ‬האלמנטים עבור המשתמש נוצרים בשרת‬
‫‪ ‬השרת יודע כיצד הטופס נראה‬
‫‪ ‬השרת מודע לפונקציונליות הטופס‬
‫‪ ‬השרת מודע לסוגי הנתונים הנשלחים מהטופס‬

‫‪Server Controls‬‬
‫‪ ‬פקדי שרת‬
‫‪ ‬מייצגים חלק ממשק המשתמש ‪UI‬‬
‫‪ ‬אובייטים הניתנים לשליטה מלאה בצד השרת‬
‫‪ ‬מכילים אירועים ‪ ,‬מאפיינים ‪ ,‬שיטות ‪..‬‬
‫‪ ‬בעת בקשה מהלקוח ‪ asp.net ,‬ממירה פקדים‬
‫אלה ל ‪ HTML‬המותאם לסוג הדפדפן‬
‫תמיכה ברמה הנמוכה ‪Down Level Support‬‬

‫‪Event-Driven‬‬
‫‪ ‬מתבסס על מודל ‪Request \ Response‬‬
‫‪ ‬מספק סביבה אינטואיטיבית‬
‫‪ ‬הפקדים מודיעים לשרת ברגע שמשהו מתרחש‬
‫‪ ‬הלקוח שולח מידע לשרת גם ללא ידעת המשתמש‬
‫‪ ‬השרת יוצר את הפקדים ולכן זוכר את הערכים‬
‫‪ ‬שימוש אוטומטי בשדות נסתרים מאפשרים לשרת‬
‫לזכור את מצב התצוגה של כל פקד‬

Server Control Type
HTML
WEB
Validation
USER

Server
Server
Server
Server

Controls 
Controls 
Controls 
Controls 

‫‪HTML\WEB Server Controls‬‬
‫‪HTML ‬‬
‫‪ ‬ייצוג עבור האלמנטים הרגילים ב ‪HTML‬‬
‫‪ ‬נמצאים בצד השרת‬
‫‪WEB ‬‬
‫‪ ‬מספקים פונקציונליות גבוהה יותר‬
‫‪ ‬מציגים ממשקי משתמש מורכבים‬

‫‪Validation\User Server Controls‬‬
‫‪Validation‬‬
‫‪ ‬בדיקת נתוני המשתמש‬
‫‪ ‬טווח ‪ ,‬ביטוי ‪ ,‬נתוני חובה ‪ ,‬סיכום שגיאות ‪...‬‬
‫‪USER‬‬
‫‪ ‬פקדים המותאמים אישית לפי רצון המשתמש‬

‫אירוע אקטיבי \ פסיבי‬
‫אירוע אקטיבי‬
‫‪ ‬מחייב פעולה מפורשת של המשתמש‬
‫‪ ‬הפעולה מבוצעת במתכוון‬
‫‪ ‬לחיצה על קישור‪ ,‬לחצן ‪ ,‬הזנת טקסט ‪...‬‬
‫‪ ‬רק אירועים אקטיביים מטופלים בשרת‬
‫אירוע פסיבי ‪:‬‬
‫מתרחש שלא במתכוון‬
‫הזזת עכבר ‪ ,‬גרירת תמונה ‪...‬‬
‫אירועים פסיבים מתרחשים בתדירות גבוהה מאד‬
‫לכן הם מטופלים בצד הלקוח ‪JavaScript -‬‬

‫‪Events‬‬
‫‪‬‬
‫‪‬‬

‫לפקדי שרת אירועים רבים‬
‫בכל התרחשות אירוע הלקוח שולח נתונים לשרת‬

‫אירעים נשלחים לשרת בשתי דרכים ‪:‬‬
‫‪ .1‬אירוע מופעל ‪ ‬מייד ברגע ההתרחשות‬
‫‪ .2‬אירוע מופעל ‪ ‬במשלוח יחיד ( או קבוצה ) ‪Submit‬‬

‫רשימת הפרמטרים הסטנדרטית עבור אירוע‬
‫ יתרחש‬CLICK ‫כאשר האירוע‬
‫שיטה זו תופעל בצד השרת‬

‫מייצגים נתונים הנכללים במשלוח‬
‫ האובייקט הקורא לשיטה‬: Obj

<script runat="server">

‫ מידע נוסף‬: E

Sub Button1_Click(obj as object, e as EventArgs)
Label1.Text = "You clicked " & obj.Text & ""
end Sub


‫יציג את הטקסט השרשום על הפקד‬
Button1 : ‫שקרא לשיטה‬


runat="server" Text="Button1" onClick="Button1_Click" />

Obj.Text

‫‪View State‬‬
‫‪ ‬טפסי ‪ WEB‬שומרים את מצב התצוגה ע"י שדות‬
‫נסתרים המיוצרים אוטומטית‬
‫‪State bag ‬‬
‫‪ ‬דרך נוספת לשמירת מידע היא ‪State bag‬‬
‫‪ ‬משתמש לשמירת ערכים שהמשתמש לא הזין כמו‬
‫תוצאת חישוב שהתקבלה ויש לשמור אותה‬

State Bag
ViewState("StartTime") = DateTime.Now

Sub Page_Load(obj as object, e as EventArgs)
if not Page.IsPostBack then
ViewState("StartTime") = DateTime.Now
lblMessage.Text = "Time is now: " & ViewState("StartTime")

end if
end sub
State Bag ‫ הזמן ותאריך הבקשה יאוחסנו ב‬: ‫בפעם הראשונה‬
‫הערך ישמר למרות בקשות שונות שיתרחשו‬

State Bag
‫ שולח את הנתונים ומוכיח כי ערך‬SUBMIT ‫ביצוע‬

‫ נשמר‬State Bag ‫ה‬
Sub Submit(obj as object, e as EventArgs)
lblMessage.Text = "The time is now: " & DateTime.Now & _
"
started at: " & ViewState("StartTime")
end Sub

‫ זמן טעינת הדף לראשונה‬+ ‫יודפס הערך של הזמן הנוכחי‬
‫האובייקט מתרוקן כאשר המשתמש עוזב את הדף‬

‫‪State Bag‬‬

‫הזמן בכל לחיצה על ‪Submit‬‬

‫רק כאשר הדף נטען לראשונה ‪Stae Bag‬‬

‫סדר פעולות כללי‬
‫‪.1‬‬
‫‪.2‬‬
‫‪.3‬‬

‫‪.4‬‬
‫‪.5‬‬
‫‪.6‬‬
‫‪.7‬‬

‫לקוח מבקש טופס‬
‫השרת מייצר קוד ‪HTML‬‬
‫‪ Page_Load‬מתרחש‬
‫השרת שולח את הטופס‬
‫קריאה לשיטות המטפלות באירועים‬
‫לקוח עוזב את הדף‬
‫‪ Page_Unload‬משחרר כל זיכרון שאין בו צורך‬

‫‪AutoPostBack‬‬
‫‪ ‬משלוח מיידי של נתונים בעת התרחשות האירוע‬

AutoPostBack

‫‪AutoPostBack‬‬

‫הטיפול באירועים‬

'‫סיכום חלק א‬
‫ מאפשרים לשרת לעקוב אחר‬Web ‫ טפסי‬
‫המשתמש‬
‫ סוגי פקדים‬4 ‫ מורכבים מ‬WEB ‫ טפסי‬
USER\Validation\WEB\HTML 
runat=server ‫ הסבת פקד ישן‬
Event 
State Bag 
AutoPostBack 

ASP.NET ‫מבוא ל‬
3 '‫מצגת מס‬

ASP.NET ‫ מבוא ל‬: 3 ‫ שיעור‬

www.doronamir.com
MCSD DORON AMIR


Slide 21

ASP.NET ‫מבוא ל‬
3 '‫מצגת מס‬

ASP.NET ‫ מבוא ל‬: 3 ‫ שיעור‬

www.doronamir.com
MCSD DORON AMIR

‫‪Web Forms‬‬

‫‪ Web Form ‬מאפשר ל ‪ asp.net‬לספק בקרה על‬
‫ממשק המשתמש ע"י אובייקטים הנמצאים בשרת‬

‫‪HTML FORMS‬‬
‫‪ ‬מודל ‪Request \ Response‬‬
‫‪ HTML ‬בנוי מפריטים המרכיבים את ממשק המשתמש‬
‫‪ HTML ‬מבוסס על צד הלקוח ‪Client-Based :‬‬
‫‪ ‬רק כאשר מתבצע ‪ SUBMIT‬נשלחים הנתונים‬
‫‪ ‬השרת אינו יודע כיצד נראה הטופס‬
‫‪ ‬השרת אינו יודע לאיזה סוג נתונים לצפות‬
‫‪Client‬‬

‫‪SERVER‬‬

‫‪POST DATA‬‬

‫‪Web Forms‬‬
‫‪ ‬בניגוד ל ‪ HTML‬ה ‪ Web Forms‬מבוססי שרת‬
‫‪ ‬האלמנטים עבור המשתמש נוצרים בשרת‬
‫‪ ‬השרת יודע כיצד הטופס נראה‬
‫‪ ‬השרת מודע לפונקציונליות הטופס‬
‫‪ ‬השרת מודע לסוגי הנתונים הנשלחים מהטופס‬

‫‪Server Controls‬‬
‫‪ ‬פקדי שרת‬
‫‪ ‬מייצגים חלק ממשק המשתמש ‪UI‬‬
‫‪ ‬אובייטים הניתנים לשליטה מלאה בצד השרת‬
‫‪ ‬מכילים אירועים ‪ ,‬מאפיינים ‪ ,‬שיטות ‪..‬‬
‫‪ ‬בעת בקשה מהלקוח ‪ asp.net ,‬ממירה פקדים‬
‫אלה ל ‪ HTML‬המותאם לסוג הדפדפן‬
‫תמיכה ברמה הנמוכה ‪Down Level Support‬‬

‫‪Event-Driven‬‬
‫‪ ‬מתבסס על מודל ‪Request \ Response‬‬
‫‪ ‬מספק סביבה אינטואיטיבית‬
‫‪ ‬הפקדים מודיעים לשרת ברגע שמשהו מתרחש‬
‫‪ ‬הלקוח שולח מידע לשרת גם ללא ידעת המשתמש‬
‫‪ ‬השרת יוצר את הפקדים ולכן זוכר את הערכים‬
‫‪ ‬שימוש אוטומטי בשדות נסתרים מאפשרים לשרת‬
‫לזכור את מצב התצוגה של כל פקד‬

Server Control Type
HTML
WEB
Validation
USER

Server
Server
Server
Server

Controls 
Controls 
Controls 
Controls 

‫‪HTML\WEB Server Controls‬‬
‫‪HTML ‬‬
‫‪ ‬ייצוג עבור האלמנטים הרגילים ב ‪HTML‬‬
‫‪ ‬נמצאים בצד השרת‬
‫‪WEB ‬‬
‫‪ ‬מספקים פונקציונליות גבוהה יותר‬
‫‪ ‬מציגים ממשקי משתמש מורכבים‬

‫‪Validation\User Server Controls‬‬
‫‪Validation‬‬
‫‪ ‬בדיקת נתוני המשתמש‬
‫‪ ‬טווח ‪ ,‬ביטוי ‪ ,‬נתוני חובה ‪ ,‬סיכום שגיאות ‪...‬‬
‫‪USER‬‬
‫‪ ‬פקדים המותאמים אישית לפי רצון המשתמש‬

‫אירוע אקטיבי \ פסיבי‬
‫אירוע אקטיבי‬
‫‪ ‬מחייב פעולה מפורשת של המשתמש‬
‫‪ ‬הפעולה מבוצעת במתכוון‬
‫‪ ‬לחיצה על קישור‪ ,‬לחצן ‪ ,‬הזנת טקסט ‪...‬‬
‫‪ ‬רק אירועים אקטיביים מטופלים בשרת‬
‫אירוע פסיבי ‪:‬‬
‫מתרחש שלא במתכוון‬
‫הזזת עכבר ‪ ,‬גרירת תמונה ‪...‬‬
‫אירועים פסיבים מתרחשים בתדירות גבוהה מאד‬
‫לכן הם מטופלים בצד הלקוח ‪JavaScript -‬‬

‫‪Events‬‬
‫‪‬‬
‫‪‬‬

‫לפקדי שרת אירועים רבים‬
‫בכל התרחשות אירוע הלקוח שולח נתונים לשרת‬

‫אירעים נשלחים לשרת בשתי דרכים ‪:‬‬
‫‪ .1‬אירוע מופעל ‪ ‬מייד ברגע ההתרחשות‬
‫‪ .2‬אירוע מופעל ‪ ‬במשלוח יחיד ( או קבוצה ) ‪Submit‬‬

‫רשימת הפרמטרים הסטנדרטית עבור אירוע‬
‫ יתרחש‬CLICK ‫כאשר האירוע‬
‫שיטה זו תופעל בצד השרת‬

‫מייצגים נתונים הנכללים במשלוח‬
‫ האובייקט הקורא לשיטה‬: Obj

<script runat="server">

‫ מידע נוסף‬: E

Sub Button1_Click(obj as object, e as EventArgs)
Label1.Text = "You clicked " & obj.Text & ""
end Sub


‫יציג את הטקסט השרשום על הפקד‬
Button1 : ‫שקרא לשיטה‬


runat="server" Text="Button1" onClick="Button1_Click" />

Obj.Text

‫‪View State‬‬
‫‪ ‬טפסי ‪ WEB‬שומרים את מצב התצוגה ע"י שדות‬
‫נסתרים המיוצרים אוטומטית‬
‫‪State bag ‬‬
‫‪ ‬דרך נוספת לשמירת מידע היא ‪State bag‬‬
‫‪ ‬משתמש לשמירת ערכים שהמשתמש לא הזין כמו‬
‫תוצאת חישוב שהתקבלה ויש לשמור אותה‬

State Bag
ViewState("StartTime") = DateTime.Now

Sub Page_Load(obj as object, e as EventArgs)
if not Page.IsPostBack then
ViewState("StartTime") = DateTime.Now
lblMessage.Text = "Time is now: " & ViewState("StartTime")

end if
end sub
State Bag ‫ הזמן ותאריך הבקשה יאוחסנו ב‬: ‫בפעם הראשונה‬
‫הערך ישמר למרות בקשות שונות שיתרחשו‬

State Bag
‫ שולח את הנתונים ומוכיח כי ערך‬SUBMIT ‫ביצוע‬

‫ נשמר‬State Bag ‫ה‬
Sub Submit(obj as object, e as EventArgs)
lblMessage.Text = "The time is now: " & DateTime.Now & _
"
started at: " & ViewState("StartTime")
end Sub

‫ זמן טעינת הדף לראשונה‬+ ‫יודפס הערך של הזמן הנוכחי‬
‫האובייקט מתרוקן כאשר המשתמש עוזב את הדף‬

‫‪State Bag‬‬

‫הזמן בכל לחיצה על ‪Submit‬‬

‫רק כאשר הדף נטען לראשונה ‪Stae Bag‬‬

‫סדר פעולות כללי‬
‫‪.1‬‬
‫‪.2‬‬
‫‪.3‬‬

‫‪.4‬‬
‫‪.5‬‬
‫‪.6‬‬
‫‪.7‬‬

‫לקוח מבקש טופס‬
‫השרת מייצר קוד ‪HTML‬‬
‫‪ Page_Load‬מתרחש‬
‫השרת שולח את הטופס‬
‫קריאה לשיטות המטפלות באירועים‬
‫לקוח עוזב את הדף‬
‫‪ Page_Unload‬משחרר כל זיכרון שאין בו צורך‬

‫‪AutoPostBack‬‬
‫‪ ‬משלוח מיידי של נתונים בעת התרחשות האירוע‬

AutoPostBack

‫‪AutoPostBack‬‬

‫הטיפול באירועים‬

'‫סיכום חלק א‬
‫ מאפשרים לשרת לעקוב אחר‬Web ‫ טפסי‬
‫המשתמש‬
‫ סוגי פקדים‬4 ‫ מורכבים מ‬WEB ‫ טפסי‬
USER\Validation\WEB\HTML 
runat=server ‫ הסבת פקד ישן‬
Event 
State Bag 
AutoPostBack 

ASP.NET ‫מבוא ל‬
3 '‫מצגת מס‬

ASP.NET ‫ מבוא ל‬: 3 ‫ שיעור‬

www.doronamir.com
MCSD DORON AMIR


Slide 22

ASP.NET ‫מבוא ל‬
3 '‫מצגת מס‬

ASP.NET ‫ מבוא ל‬: 3 ‫ שיעור‬

www.doronamir.com
MCSD DORON AMIR

‫‪Web Forms‬‬

‫‪ Web Form ‬מאפשר ל ‪ asp.net‬לספק בקרה על‬
‫ממשק המשתמש ע"י אובייקטים הנמצאים בשרת‬

‫‪HTML FORMS‬‬
‫‪ ‬מודל ‪Request \ Response‬‬
‫‪ HTML ‬בנוי מפריטים המרכיבים את ממשק המשתמש‬
‫‪ HTML ‬מבוסס על צד הלקוח ‪Client-Based :‬‬
‫‪ ‬רק כאשר מתבצע ‪ SUBMIT‬נשלחים הנתונים‬
‫‪ ‬השרת אינו יודע כיצד נראה הטופס‬
‫‪ ‬השרת אינו יודע לאיזה סוג נתונים לצפות‬
‫‪Client‬‬

‫‪SERVER‬‬

‫‪POST DATA‬‬

‫‪Web Forms‬‬
‫‪ ‬בניגוד ל ‪ HTML‬ה ‪ Web Forms‬מבוססי שרת‬
‫‪ ‬האלמנטים עבור המשתמש נוצרים בשרת‬
‫‪ ‬השרת יודע כיצד הטופס נראה‬
‫‪ ‬השרת מודע לפונקציונליות הטופס‬
‫‪ ‬השרת מודע לסוגי הנתונים הנשלחים מהטופס‬

‫‪Server Controls‬‬
‫‪ ‬פקדי שרת‬
‫‪ ‬מייצגים חלק ממשק המשתמש ‪UI‬‬
‫‪ ‬אובייטים הניתנים לשליטה מלאה בצד השרת‬
‫‪ ‬מכילים אירועים ‪ ,‬מאפיינים ‪ ,‬שיטות ‪..‬‬
‫‪ ‬בעת בקשה מהלקוח ‪ asp.net ,‬ממירה פקדים‬
‫אלה ל ‪ HTML‬המותאם לסוג הדפדפן‬
‫תמיכה ברמה הנמוכה ‪Down Level Support‬‬

‫‪Event-Driven‬‬
‫‪ ‬מתבסס על מודל ‪Request \ Response‬‬
‫‪ ‬מספק סביבה אינטואיטיבית‬
‫‪ ‬הפקדים מודיעים לשרת ברגע שמשהו מתרחש‬
‫‪ ‬הלקוח שולח מידע לשרת גם ללא ידעת המשתמש‬
‫‪ ‬השרת יוצר את הפקדים ולכן זוכר את הערכים‬
‫‪ ‬שימוש אוטומטי בשדות נסתרים מאפשרים לשרת‬
‫לזכור את מצב התצוגה של כל פקד‬

Server Control Type
HTML
WEB
Validation
USER

Server
Server
Server
Server

Controls 
Controls 
Controls 
Controls 

‫‪HTML\WEB Server Controls‬‬
‫‪HTML ‬‬
‫‪ ‬ייצוג עבור האלמנטים הרגילים ב ‪HTML‬‬
‫‪ ‬נמצאים בצד השרת‬
‫‪WEB ‬‬
‫‪ ‬מספקים פונקציונליות גבוהה יותר‬
‫‪ ‬מציגים ממשקי משתמש מורכבים‬

‫‪Validation\User Server Controls‬‬
‫‪Validation‬‬
‫‪ ‬בדיקת נתוני המשתמש‬
‫‪ ‬טווח ‪ ,‬ביטוי ‪ ,‬נתוני חובה ‪ ,‬סיכום שגיאות ‪...‬‬
‫‪USER‬‬
‫‪ ‬פקדים המותאמים אישית לפי רצון המשתמש‬

‫אירוע אקטיבי \ פסיבי‬
‫אירוע אקטיבי‬
‫‪ ‬מחייב פעולה מפורשת של המשתמש‬
‫‪ ‬הפעולה מבוצעת במתכוון‬
‫‪ ‬לחיצה על קישור‪ ,‬לחצן ‪ ,‬הזנת טקסט ‪...‬‬
‫‪ ‬רק אירועים אקטיביים מטופלים בשרת‬
‫אירוע פסיבי ‪:‬‬
‫מתרחש שלא במתכוון‬
‫הזזת עכבר ‪ ,‬גרירת תמונה ‪...‬‬
‫אירועים פסיבים מתרחשים בתדירות גבוהה מאד‬
‫לכן הם מטופלים בצד הלקוח ‪JavaScript -‬‬

‫‪Events‬‬
‫‪‬‬
‫‪‬‬

‫לפקדי שרת אירועים רבים‬
‫בכל התרחשות אירוע הלקוח שולח נתונים לשרת‬

‫אירעים נשלחים לשרת בשתי דרכים ‪:‬‬
‫‪ .1‬אירוע מופעל ‪ ‬מייד ברגע ההתרחשות‬
‫‪ .2‬אירוע מופעל ‪ ‬במשלוח יחיד ( או קבוצה ) ‪Submit‬‬

‫רשימת הפרמטרים הסטנדרטית עבור אירוע‬
‫ יתרחש‬CLICK ‫כאשר האירוע‬
‫שיטה זו תופעל בצד השרת‬

‫מייצגים נתונים הנכללים במשלוח‬
‫ האובייקט הקורא לשיטה‬: Obj

<script runat="server">

‫ מידע נוסף‬: E

Sub Button1_Click(obj as object, e as EventArgs)
Label1.Text = "You clicked " & obj.Text & ""
end Sub


‫יציג את הטקסט השרשום על הפקד‬
Button1 : ‫שקרא לשיטה‬


runat="server" Text="Button1" onClick="Button1_Click" />

Obj.Text

‫‪View State‬‬
‫‪ ‬טפסי ‪ WEB‬שומרים את מצב התצוגה ע"י שדות‬
‫נסתרים המיוצרים אוטומטית‬
‫‪State bag ‬‬
‫‪ ‬דרך נוספת לשמירת מידע היא ‪State bag‬‬
‫‪ ‬משתמש לשמירת ערכים שהמשתמש לא הזין כמו‬
‫תוצאת חישוב שהתקבלה ויש לשמור אותה‬

State Bag
ViewState("StartTime") = DateTime.Now

Sub Page_Load(obj as object, e as EventArgs)
if not Page.IsPostBack then
ViewState("StartTime") = DateTime.Now
lblMessage.Text = "Time is now: " & ViewState("StartTime")

end if
end sub
State Bag ‫ הזמן ותאריך הבקשה יאוחסנו ב‬: ‫בפעם הראשונה‬
‫הערך ישמר למרות בקשות שונות שיתרחשו‬

State Bag
‫ שולח את הנתונים ומוכיח כי ערך‬SUBMIT ‫ביצוע‬

‫ נשמר‬State Bag ‫ה‬
Sub Submit(obj as object, e as EventArgs)
lblMessage.Text = "The time is now: " & DateTime.Now & _
"
started at: " & ViewState("StartTime")
end Sub

‫ זמן טעינת הדף לראשונה‬+ ‫יודפס הערך של הזמן הנוכחי‬
‫האובייקט מתרוקן כאשר המשתמש עוזב את הדף‬

‫‪State Bag‬‬

‫הזמן בכל לחיצה על ‪Submit‬‬

‫רק כאשר הדף נטען לראשונה ‪Stae Bag‬‬

‫סדר פעולות כללי‬
‫‪.1‬‬
‫‪.2‬‬
‫‪.3‬‬

‫‪.4‬‬
‫‪.5‬‬
‫‪.6‬‬
‫‪.7‬‬

‫לקוח מבקש טופס‬
‫השרת מייצר קוד ‪HTML‬‬
‫‪ Page_Load‬מתרחש‬
‫השרת שולח את הטופס‬
‫קריאה לשיטות המטפלות באירועים‬
‫לקוח עוזב את הדף‬
‫‪ Page_Unload‬משחרר כל זיכרון שאין בו צורך‬

‫‪AutoPostBack‬‬
‫‪ ‬משלוח מיידי של נתונים בעת התרחשות האירוע‬

AutoPostBack

‫‪AutoPostBack‬‬

‫הטיפול באירועים‬

'‫סיכום חלק א‬
‫ מאפשרים לשרת לעקוב אחר‬Web ‫ טפסי‬
‫המשתמש‬
‫ סוגי פקדים‬4 ‫ מורכבים מ‬WEB ‫ טפסי‬
USER\Validation\WEB\HTML 
runat=server ‫ הסבת פקד ישן‬
Event 
State Bag 
AutoPostBack 

ASP.NET ‫מבוא ל‬
3 '‫מצגת מס‬

ASP.NET ‫ מבוא ל‬: 3 ‫ שיעור‬

www.doronamir.com
MCSD DORON AMIR


Slide 23

ASP.NET ‫מבוא ל‬
3 '‫מצגת מס‬

ASP.NET ‫ מבוא ל‬: 3 ‫ שיעור‬

www.doronamir.com
MCSD DORON AMIR

‫‪Web Forms‬‬

‫‪ Web Form ‬מאפשר ל ‪ asp.net‬לספק בקרה על‬
‫ממשק המשתמש ע"י אובייקטים הנמצאים בשרת‬

‫‪HTML FORMS‬‬
‫‪ ‬מודל ‪Request \ Response‬‬
‫‪ HTML ‬בנוי מפריטים המרכיבים את ממשק המשתמש‬
‫‪ HTML ‬מבוסס על צד הלקוח ‪Client-Based :‬‬
‫‪ ‬רק כאשר מתבצע ‪ SUBMIT‬נשלחים הנתונים‬
‫‪ ‬השרת אינו יודע כיצד נראה הטופס‬
‫‪ ‬השרת אינו יודע לאיזה סוג נתונים לצפות‬
‫‪Client‬‬

‫‪SERVER‬‬

‫‪POST DATA‬‬

‫‪Web Forms‬‬
‫‪ ‬בניגוד ל ‪ HTML‬ה ‪ Web Forms‬מבוססי שרת‬
‫‪ ‬האלמנטים עבור המשתמש נוצרים בשרת‬
‫‪ ‬השרת יודע כיצד הטופס נראה‬
‫‪ ‬השרת מודע לפונקציונליות הטופס‬
‫‪ ‬השרת מודע לסוגי הנתונים הנשלחים מהטופס‬

‫‪Server Controls‬‬
‫‪ ‬פקדי שרת‬
‫‪ ‬מייצגים חלק ממשק המשתמש ‪UI‬‬
‫‪ ‬אובייטים הניתנים לשליטה מלאה בצד השרת‬
‫‪ ‬מכילים אירועים ‪ ,‬מאפיינים ‪ ,‬שיטות ‪..‬‬
‫‪ ‬בעת בקשה מהלקוח ‪ asp.net ,‬ממירה פקדים‬
‫אלה ל ‪ HTML‬המותאם לסוג הדפדפן‬
‫תמיכה ברמה הנמוכה ‪Down Level Support‬‬

‫‪Event-Driven‬‬
‫‪ ‬מתבסס על מודל ‪Request \ Response‬‬
‫‪ ‬מספק סביבה אינטואיטיבית‬
‫‪ ‬הפקדים מודיעים לשרת ברגע שמשהו מתרחש‬
‫‪ ‬הלקוח שולח מידע לשרת גם ללא ידעת המשתמש‬
‫‪ ‬השרת יוצר את הפקדים ולכן זוכר את הערכים‬
‫‪ ‬שימוש אוטומטי בשדות נסתרים מאפשרים לשרת‬
‫לזכור את מצב התצוגה של כל פקד‬

Server Control Type
HTML
WEB
Validation
USER

Server
Server
Server
Server

Controls 
Controls 
Controls 
Controls 

‫‪HTML\WEB Server Controls‬‬
‫‪HTML ‬‬
‫‪ ‬ייצוג עבור האלמנטים הרגילים ב ‪HTML‬‬
‫‪ ‬נמצאים בצד השרת‬
‫‪WEB ‬‬
‫‪ ‬מספקים פונקציונליות גבוהה יותר‬
‫‪ ‬מציגים ממשקי משתמש מורכבים‬

‫‪Validation\User Server Controls‬‬
‫‪Validation‬‬
‫‪ ‬בדיקת נתוני המשתמש‬
‫‪ ‬טווח ‪ ,‬ביטוי ‪ ,‬נתוני חובה ‪ ,‬סיכום שגיאות ‪...‬‬
‫‪USER‬‬
‫‪ ‬פקדים המותאמים אישית לפי רצון המשתמש‬

‫אירוע אקטיבי \ פסיבי‬
‫אירוע אקטיבי‬
‫‪ ‬מחייב פעולה מפורשת של המשתמש‬
‫‪ ‬הפעולה מבוצעת במתכוון‬
‫‪ ‬לחיצה על קישור‪ ,‬לחצן ‪ ,‬הזנת טקסט ‪...‬‬
‫‪ ‬רק אירועים אקטיביים מטופלים בשרת‬
‫אירוע פסיבי ‪:‬‬
‫מתרחש שלא במתכוון‬
‫הזזת עכבר ‪ ,‬גרירת תמונה ‪...‬‬
‫אירועים פסיבים מתרחשים בתדירות גבוהה מאד‬
‫לכן הם מטופלים בצד הלקוח ‪JavaScript -‬‬

‫‪Events‬‬
‫‪‬‬
‫‪‬‬

‫לפקדי שרת אירועים רבים‬
‫בכל התרחשות אירוע הלקוח שולח נתונים לשרת‬

‫אירעים נשלחים לשרת בשתי דרכים ‪:‬‬
‫‪ .1‬אירוע מופעל ‪ ‬מייד ברגע ההתרחשות‬
‫‪ .2‬אירוע מופעל ‪ ‬במשלוח יחיד ( או קבוצה ) ‪Submit‬‬

‫רשימת הפרמטרים הסטנדרטית עבור אירוע‬
‫ יתרחש‬CLICK ‫כאשר האירוע‬
‫שיטה זו תופעל בצד השרת‬

‫מייצגים נתונים הנכללים במשלוח‬
‫ האובייקט הקורא לשיטה‬: Obj

<script runat="server">

‫ מידע נוסף‬: E

Sub Button1_Click(obj as object, e as EventArgs)
Label1.Text = "You clicked " & obj.Text & ""
end Sub


‫יציג את הטקסט השרשום על הפקד‬
Button1 : ‫שקרא לשיטה‬


runat="server" Text="Button1" onClick="Button1_Click" />

Obj.Text

‫‪View State‬‬
‫‪ ‬טפסי ‪ WEB‬שומרים את מצב התצוגה ע"י שדות‬
‫נסתרים המיוצרים אוטומטית‬
‫‪State bag ‬‬
‫‪ ‬דרך נוספת לשמירת מידע היא ‪State bag‬‬
‫‪ ‬משתמש לשמירת ערכים שהמשתמש לא הזין כמו‬
‫תוצאת חישוב שהתקבלה ויש לשמור אותה‬

State Bag
ViewState("StartTime") = DateTime.Now

Sub Page_Load(obj as object, e as EventArgs)
if not Page.IsPostBack then
ViewState("StartTime") = DateTime.Now
lblMessage.Text = "Time is now: " & ViewState("StartTime")

end if
end sub
State Bag ‫ הזמן ותאריך הבקשה יאוחסנו ב‬: ‫בפעם הראשונה‬
‫הערך ישמר למרות בקשות שונות שיתרחשו‬

State Bag
‫ שולח את הנתונים ומוכיח כי ערך‬SUBMIT ‫ביצוע‬

‫ נשמר‬State Bag ‫ה‬
Sub Submit(obj as object, e as EventArgs)
lblMessage.Text = "The time is now: " & DateTime.Now & _
"
started at: " & ViewState("StartTime")
end Sub

‫ זמן טעינת הדף לראשונה‬+ ‫יודפס הערך של הזמן הנוכחי‬
‫האובייקט מתרוקן כאשר המשתמש עוזב את הדף‬

‫‪State Bag‬‬

‫הזמן בכל לחיצה על ‪Submit‬‬

‫רק כאשר הדף נטען לראשונה ‪Stae Bag‬‬

‫סדר פעולות כללי‬
‫‪.1‬‬
‫‪.2‬‬
‫‪.3‬‬

‫‪.4‬‬
‫‪.5‬‬
‫‪.6‬‬
‫‪.7‬‬

‫לקוח מבקש טופס‬
‫השרת מייצר קוד ‪HTML‬‬
‫‪ Page_Load‬מתרחש‬
‫השרת שולח את הטופס‬
‫קריאה לשיטות המטפלות באירועים‬
‫לקוח עוזב את הדף‬
‫‪ Page_Unload‬משחרר כל זיכרון שאין בו צורך‬

‫‪AutoPostBack‬‬
‫‪ ‬משלוח מיידי של נתונים בעת התרחשות האירוע‬

AutoPostBack

‫‪AutoPostBack‬‬

‫הטיפול באירועים‬

'‫סיכום חלק א‬
‫ מאפשרים לשרת לעקוב אחר‬Web ‫ טפסי‬
‫המשתמש‬
‫ סוגי פקדים‬4 ‫ מורכבים מ‬WEB ‫ טפסי‬
USER\Validation\WEB\HTML 
runat=server ‫ הסבת פקד ישן‬
Event 
State Bag 
AutoPostBack 

ASP.NET ‫מבוא ל‬
3 '‫מצגת מס‬

ASP.NET ‫ מבוא ל‬: 3 ‫ שיעור‬

www.doronamir.com
MCSD DORON AMIR