
System.Web, כי היא מכילה רכיבי רשת של ASP.NET.ChooseItemDropDownList והיורשת ממחלקת DropDownList. דורסים את המתודה OnPreRender שרצה שנייה לפני הרנדור. בתוכה קוראים קודם לגרסה המקורית (base.OnPreRender), ואז מוסיפים לתחילת הרשימה פריט עם הטקסט "בחר אחד מהבאים" והערך 0.Bin של האתר.system.web, pages ו-controls. שם מוגדרים האסמבלי, הנמספייס והקידומת. מאז כל הדפים מכירים את הרכיב.הטקסט המלא של הדקות הראשונות בהרצאה «Control Inheritance - הורשת פקדים» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
אוקיי, אז בשיעור היום אנחנו הולכים לראות איך אנחנו יורשים פקד מוכן ובונים אותו משלנו. מה זאת אומרת? אנחנו ראינו שישנם כל מיני פקדי צד שרת של sp.net.
פקד זה סך הכל רכיב גרפי שאנחנו יכולים להשתמש איתו, כמו תיבת טקסט, כמו לחצן, כמו drop-down list.
אנחנו הולכים לראות איך אנחנו יכולים לקחת פקד כזה מוכן ולתת לו עוד יכולות, כך שהוא יהיה בדיוק אותו הדבר אבל עם יותר יכולות שמותאמות ספציפית לפרויקט שלנו.
אם אנחנו רוצים פקד דומה מאוד לפקד קיים, אבל שיש בו קצת יותר דברים, אבל אנחנו לא צריכים לבנות הכל מההתחלה, אנחנו יכולים לקחת את אחד הפקדים המוכנים ולהרחיב לו את היכולות על ידי כלי תכנותי שנקרא הורשה.
זה הדבר הראשון שאנחנו הולכים לראות ואיך אנחנו פותחים את הפרויקטים המתאימים בשביל זה. קודם כל אנחנו הולכים לפייל ומגדירים New Website.
בואו ניקח sp.net ונשמור אותו על הדסק-טופ. כאן יש לנו את הפרויקט של האתר אינטרנט שלנו.
אנחנו יכולים להוסיף לו דף ראשון, נקרא לו הום-פייג', ויש לנו פה את האתר שלנו, אנחנו יכולים לראות שהאתר רץ.
מעולה. עכשיו אנחנו צריכים להוסיף עוד פרויקט לסולושן. מה ההבדל בין פרויקט לבין סולושן? פרויקט מאפשר לנו לפתח מוצר אחד, לדוגמה אתר אינטרנט, לדוגמה תוכנת הרצה רגילה שהיא לא אתר אינטרנט.
סולושן מחזיק בתוכו פרויקט אחד או יותר. אנחנו את ההרחבה לגבי הרכיבים האלה הולכים לעשות בפרויקט נפרד, ולכן אנחנו פונים לסולושן בשביל להכיל שני פרויקטים, אחד את האתר אינטרנט ואחד את הפרויקט הנוסף.
מכה שימנה על הסולושן Add New Project. פרויקט שאנחנו בוחרים נקרא Class Library. פרויקט Class Library מייצר לנו קובץ עם סיומת DLL. נקרא גם קובץ DLL. קובץ DLL זה סך הכל קובץ שמחזיק בתוכו רכיבים ולא מסוגל לרוץ בעצמו, אלא אתר אחר או תוכנה אחרת
צורכים את הרכיבים שבתוכו. אז בואו נפתח את ה-DLL, גם כן נשים אותו בדסטופ, ונקרא לו My Control Library. בתוך ה-Dלל הזה אנחנו רואים שיש לנו קובץ שנקרא Class1.cs, קובץ C-Sharp רגיל שמתאר קלאס.
קלאס, אפשר להגיד שזה רכיב חדש שאנחנו בונים. בשביל לבנות את הרכיב שאנחנו רוצים לבנות, בואו נוסיף קודם כל עוד dll לפרויקט dll שלנו על ידי מקשי מניאל רפרנסס לבחירה ב-add reference וה-dll שאנחנו רוצים להוסיף נמצא בתיקייה בכרטיסייה .NET והוא נקרא system.web.
הרפרנס הזה שאנחנו מוסיפים מכיל בתוכו רכיבים שקשורים לעולם ה-Web. אני רואה שאני יכול לראות כאן את ה-reference שהוספתי לפרויקט ה-DLL שלנו.
אוקיי, אז בואו נחשוב איזה רכיב אנחנו הולכים לבנות שירחיב את רכיבי ה-Web הקיימים. אז בואו נחזור רגע לאתר וננסה לראות איזה רכיב אנחנו יכולים להוסיף לו יכולות.
אנחנו מכירים את הרכיב ASP.2 drop-down list. ניתן לו ID, ניתן לו run את שווה server, ואנחנו יכולים להוסיף אליו פריטים.
בואו נניח שאנחנו מוסיפים זכר ונקבה. נריץ את האתר, יש לנו drop-down list, כלומר רכיב Select ב-HTML שמכיל זכר ונקבה, אבל אני רואה שאוטומטית ברגע שהרכיב הזה עלה, הפריט שנקרא זכר והפריט הראשון שקיים לי.
יש לפעמים ברכיבים כאלה פריטים שהפריט הראשון בהם זה לא באמת פריט, אלא זה פריט שאומר למשתמש לבחור אחד מהפריטים הבאים.
אנחנו רוצים בדיוק דבר כזה לבצע אצלנו אבל אני לא רוצה בכל פעם שאני משתמש בדרופ דאון ליסט ללכת ולהוסיף את הפריט הראשון כפריט כזה כלומר אני לא רוצה ללכת ולהוסיף דבר כזה חר אחד מהבאים אם בוא נניח איזשהו value 0 אם אני אעשה את הדבר הזה זה כמובן יעבוד בואו נסתכל חר אחד מהבאים ואני יכול לבחור זכר או נקבה זה כמובן יעבוד אבל זה והצריך ממני לכתוב את זה
שוב ושוב בכל drop-down list שאני משתמש בו. אני רוצה שה-drop-down list ידע אוטומטית לעשות את זה. ה-drop-down list הסטנדרטי שנקרא ASP.2 drop-down list כמובן לא יודע לבצע את הדבר הזה, ולכן אני צריך לבנות drop-down list משלי ולהרחיב לו את היכולות כך
שתהיה לו יכולת אוטומטית שהוא מוסיף את הדבר הזה כפריט ראשון בכל פעם. ולכן אם אני רוצה שזה יהיה לי אוטומטית, אני אשתמש עם הדרופ דאון ליסט שלי ולא עם הדרופ דאון ליסט של המערכת.
אוקיי, אז אחרי שאנחנו יודעים איך עושים את זה, בואו נעשה את זה. נשנה רק את הכיוון ל-RTL.
ואנחנו חוזרים לקובץ ה-DLL שלנו. אנחנו הולכים למחלקה או לקלאס שכתובה כאן. בואו קודם כל נשנה את השם של הקלאס ל-Choose Item Dropdown List.
השאלה שנשאלת כרגע זה האם המערכת רוצה שאני אשנה גם את השם של הקלאס בקובץ כך שיהיה זהה לשם הקובץ ובדרך כלל נהוג לבצע yes וכעת יש לי קובץ c-sharp שהשם שלו זה choose item drop-down list ובתוכו יש קלאס שנקראת choose item drop-down list אנחנו רוצים להרחיב את היכולות של drop-down list הקיימת ולכן
אנחנו צריכים לבצע פעולה שנקראת הורשה או inheritance ולרשת בצורה כזאת עם נקודותיים את drop-down list כעת גם הקלאס שאנחנו בנינו היא גם כן drop-down list זהה לגמרי לדרופ דאון ליסט אבל ההבדל היחידי זה שאני יכול להוסיף עליה עוד דברים אוקיי איזה דברים אנחנו רוצים להוסיף אז ישנה פונקציה שניתן להגיע אליה על ידי כתיבת override שזה בעברית
דריסה אני רוצה לדרוס פונקציה קיימת שנקראת