ירושה והרחבה

demultiplexer

New member
ירושה והרחבה

יש לי GRIDVIEW עם enable edit. כשאני מבצע עריכה הוא יודע לבד לעדכן את הרשומה שערכתי בבסיס הנתונים. אני רוצה לבצע את אותו דבר שהוא עושה רק להוסיף שורה של respone.write לפני ביצוע הקוד של העדכון לדוגמא. אני זוכר שכשלמדתי סי שארפ הייתה דרך ליצור פונקציה שיורשת התנהגות של פונקציה אחרת ולאחר קצת קוד ניתן לקרוא לפונקציה המקורית. זה אמור להראות בערך ככה אם אני זוכר נכון:
public void ExtendingFunction():ExistingFunction{ some custom code; some custom code; some custom code; existingFunction(); }​
אני לא טועה נכון ? אמורה להיות דרך כזו ? מישהו יכול לכוון אותי ? המטרה היא להכניס קצת קוד שלי לפני עדכון של שורה ב gridview ללא צורך לממש בעצמי את כל הקוד שמטפל ב row_updating. ואיך אני יוצר INSTALLER שהוא קובץ EXE שמתקין .net framework 2.0, SQL EXPRESS, ואת האפליקציה הוובית שיצרתי ? תודה
 

nadav1974

New member
תשובה

public class A { public virtual Method() { ... } } public class B : A { public override Method() { ... base.Method(); ... } }​
 

demultiplexer

New member
אוקיי זה מה שהתכוונתי אבל

אני לא מצליח להבין איך אני מרחיב את האירוע row_updatign של הgridview שיש לי. אני לא רוצה ליצור CLASS חדש שיורש מGRIDVIEW אלא רק פונקציה חדשה שתרחיב את הפוקנציה row_updatign, שתעשה איזה קוד ואז תקרא לפונקציה המקורית ותעדכן את השורה.
 

[eLad]

New member
RowUpdating הוא אירוע

וככזה, אתה יכול להוסיף לו כמה הנדלרים שתרצה, בכל אחת מהשיטות הבאות:
<asp:GridView OnRowUpdating="gv_RowUpdating" ... gv.RowUpdating+=new GridViewUpdateEventHandler(gv_RowUpdating); gv.RowUpdating+=delegate (object sender,GridViewUpdateEventArgs e) { DoMoreStuff(); }; gv.RowUpdating+=delegate { DoMuchMoreStuff(); }; ... void gv_RowUpdating(object sender,GridViewUpdateEventArgs e) { DoStuff(); }​
 

demultiplexer

New member
אבל אם אני רוצה את אותה התנהגות

שהגריד עושה BY DEFAULT ברגע שאני מטפל באירוע row_updating אני צריך לכתוב את זה לבד לא ? אני שוב מדגיש - אני רוצה לבצע קוד קצרצר ואז שיתבצע האירוע UPDATE שהגריד יוצר אוטומטית כשאני מגדיר ENABLE UPDATING.
 

[eLad]

New member
האירוע הזה ריק בהתחלה

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