ערכים שנמחקים מ-DataGrid

David El

New member
ערכים שנמחקים מ-DataGrid

אני משתמש באירוע ItemDataBound() של DataGrid על מנת "לשפץ" את המראה של כמה ערכים. כגון, שדה שמציג תאריך, אני לא רוצה שיציג גם את השעות אלא את התאריך בלבד. הבעיה -לאחר שהערכים הרצויים מופיעים ב-גריד ויש אירוע אחר בדף שלא קשור ל-גריד הזה הנתונים המשופצים האלה נמחקים.(כנראה בגלל שהשגרה ItemDataBound לא נקראת ). איך אפשר למנוע את מחיקת הערכים מהגריד ? להלן הקוד :
Private Sub dgProf2_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles dgProf2.ItemDataBound If e.Item.ItemType = ListItemType.Item Or _ e.Item.ItemType = ListItemType.AlternatingItem Then Dim strDate As String = CType(e.Item.Cells(3).FindControl("lbl_date"), Label).Text If (IsDateValid(strDate)) Then Dim Up_Date As DateTime = Convert.ToDateTime(strDate) Dim strUp_Date As String = Up_Date.ToShortDateString e.Item.Cells(3).Text = strUp_Date Else e.Item.Cells(3).Text = "" End If End If End Sub​
תודה
 

adam222

New member
..........

קודם כל, אם רק עניני DESIGN או FORMAT, אפשר לעשות את זה ב-HTML...
Format="{d:9}"​
אם השיפוצים הם מעבר לכך, הייתי ממליץ לעשות אותם ב-DataTable. נניח לצורך הענין, להוסיף עמודה הסוכמת את השורה ושומר אותו במשתנה SESSION חוצמזה, אם יש רענון לגריד, חייב לבוא גם קריאה ל-OnItemDataBound אם לא, הנתונים לא אמורים להשתנות... <משהו מוזר>
 

David El

New member
שתי תשובות לתשובתך -

1. בהתחלה באמת ניסיתי ב-html אבל יש בעיה כאשר השדה ב-data base הוא null - הדף נזרק. 2. יש לי בדף כמה גרידים ופנלים(שלחצנים מסויימים מציגים אותם ומסתירים אותם לסירוגין- לפנלים).אירוע כזה למשל לא מרענן אף גריד כי הוא לא קשור אליו. אם כן למה שתבוא קריאה ל-OnItemDataBound ? ומצד שני כיון שאין קריאה לאירוע הזה הנתונים האלה נמחקים . אז מה עושים ?
 

adam222

New member
........

אם באירוע של הסתרה \ הצגה אתה הולך לשרת, אולי ניתן לחסוך את זה ע"י Client Side, אן אין שינויים בנתונים, אין טעם, בשביל לעשות Visable=false/true לפסט-בק את כל הדף... אלא שימוש ב-
style="display: none;" or style="visibility: hidden;"​
וכד' אם הפעולה היא שונה, כגון שינויים בנתונים... אזי את צריך לטעון הכל שוב! ואז ממילא ייקרה ה-OnItemDataBound...
 

David El

New member
עוד שאלה-page_load פעמיים ?

אני מריץ את הקוד עם Debug וקורה משהו מוזר שלא קרה לי לפני כן- כאשר הדף עולה גם בפעם הראשונה וגם בכל אירוע יש גישה לפרוצדורה Page_Load() פעמיים ? למה? תודה
 

adam222

New member
זה בדיוק מה שאתה כל הזמן מפספס

כל פעם שהדף חוזר לשרת, יש טעינה מחדש של כל הדף
 

David El

New member
אבל למה פעמיים ?

1. אפילו בפעם הראשונה כשהדף עולה מתבצע ה-Page Load פעמיים רצופות וכן בכל אירוע אחריו ?! 2. בקשר למה שכתבת על ה-client . איפה אני כותב את ה-style הזה ? 3. האמת היא שב-net. אני לא יודע איך משתמשים ב-clien . ב-asp הייתי כותב הכל ב-java script בתוך <head></head> . זה נשאר אותו דבר ? תודה
 

adam222

New member
עבור על ה-call stack

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

David El

New member
מה כוונת ההודעה הזאת ?

לאחר הפעם השנייה שאני עובר על ה- Page_Load אני מקבל את ההודעה המצורפת מה המשמעות ?
 

atgili

New member
אצלי זה קרה כש...

לא איתחלתי אובייקט לדוגמא :
Dim myFrm1 As Myfrm​
במקום
Dim myFrm1 As New Myfrm​
מקווה שעזרתי :)
 

David El

New member
מצאתי את הבעיה

AutoEventWireup="true" - גורם ל-Page_load להופיע פעמיים AutoEventWireup="false" - גורם ל- Page_load להופיע פעם אחת. עכשיו אפשר
ולנסות להבין למה
 
למעלה