מדריך ל - PostBack ב - ASP.NET

PostBack הוא הכינוי שניתן לתהליך שבו דף ASP.NET נשלח לשרת לצורכי עיבוד. כאשר אנו כותבים קוד היוצא אל הפועל בצד השרת, כמו למשל קוד בתוך האירוע click של כפתור, אזי כל הדף שבו נמצא הכפתור עושה את דרכו אל השרת, שם רץ הקוד שבאירוע ורק לאחר מכן ועל פי הקוד חוזרת התוצאה המעובדת אל הדפדפן.

דוגמה פשוטה לאופן שבו תהליך ה - PostBack עובד אפשר לראות בטופס שבו נאספים פרטים. למשל טופס כניסה למערכת או טופס רישום לאתר וכדומה. ראשית המשתמש ממלא את הפרטים בשדות המתאימים ולאחר מכן הוא מבצע submit לשרת, כלומר מבצע תהליך של שליחת הדף כולו (עם הנתונים שבתוכו) לשרת. שם מתקבלים הנתונים ומתבצע אימות ועיבוד שלהם על פי הקוד שכתבנו. לאחר מכן תוחזר התוצאה לדפדפן של המשתמש.

לעתים קרובות נרצה להבחין בקוד שלנו מתי הדף נטען בפעם הראשונה ומתי הוא ביצע תהליך של PostBack. דוגמה למצב שבו אבחנה כזו היא חשובה היא נניח כאשר אנו עוסקים בטופס כלשהו לאיסוף נתונים שלהם אנו מבצעים ולידציה בצד השרת. נניח גם שאנו ממקמים את קוד הולידציה באירוע Load של הדף. ברור מאליו שלא נרצה לבצע ולידציה במקרה שהטופס נטען בפעם הראשונה משום שאין בו עדיין נתונים. כדי להבחין בין מצבים אלה נשתמש ב - IsPostBack.

דוגמה לשימוש ב - IsPostBack

' VB.NET
Sub Page_Load
  If Not IsPostBack
        Validate()
  End If
End Sub

// C#
private void Page_Load()
{
  if (!IsPostBack)
  {
    Validate();
  }
}

 

מהו AutoPostBack ולמה צריך אותו

כדי להבין מה זה AutoPostBack ולמה צריך אותו נשתמש בדוגמה הבאה. נניח שאנו כותבים טופס שמטרתו להציג את התפריט של מסעדה כלשהי. נניח גם שבתוך הטופס נשים שתי רשימות (ListBox): ברשימה אחת נשים את סוגי המזון  המוגשים במסעדה וברשימה השנייה את פירוט המנות. הרשימה השנייה תהיה תלויה בבחירה שברשימה הראשונה. נניח שברשימה הראשונה המשתמש יבחר ב"מנות צמחוניות" אזי ברשימה השניה תוצגנה למשתמש רק מנות צמחוניות. כדי למלא את הרשימה השניה על פי הבחירה ברשימה הראשונה יהיה עלינו לכתוב קוד כך שכל פעם שהמשתמש יבחר באופציה כלשהי ברשימה הראשונה הקוד שלנו יביא את הפרטים המתאימים לרשימה השניה. לשם כך נצטרך לכתוב קוד שירוץ על השרת. השאלה היא איך נגרום לכך שבחירת פריט ברשימה הראשונה תגרום לדף לרוץ לשרת לצורך עיבוד. לשם כך ספקה לנו מיקרוסופט את התכונה AutoPostBack. לא לכל פקד (control) ב - ASP.NET יש תכונה זו אולם לרשימות (ListBox) למשל יש וחשוב לדעת זאת במקרה שנצטרך לנצל תכונה זו כדי לשפר את חווית המשתמש בדף שלנו.

דוגמה להגדרת ListBox עם התכונה AutoPostBack

<asp:ListBox id="ListBox1" Rows="3" AutoPostBack="True" SelectionMode="Single"
runat="server">

<asp:ListItem>Item 1</asp:ListItem>
<asp:ListItem>Item 2</asp:ListItem>
<asp:ListItem>Item 3</asp:ListItem>

</asp:ListBox>


סיכום

במדריך זה למדנו מהו PostBack, למדנו כיצד להבחין בין PostBack בף לבין הטעינה הראשונה שלו וזאת באמצעות התכונה IsPostBack. לאחר מכן למדנו כיצד ומתי כדאי להשתמש בתכונה AutoPostBack.


 
© 2010-2013  www.Devschool.co.il | מדיניות פרטיות | תנאי שימוש