קצת חלודה

demultiplexer

New member
קצת חלודה

יש לי label ואני מעוניין לעדכן את הערך שלה מבלי לעדכן את כל העמוד לכן הכנסתי אותה לupdatepanel. אני מעוניין לשנות את הערך שלה בכל אירוע של page_load, אז הכנסתי באירוע את הקוד לשינוי הטקסט שבה אבל אני מקבל הודעה:
The name 'label1' does not exist in the current context​
אותו דבר גם כשאני מנסה עם updatepanel1 במקום label1. ההודעה מתקבלת בזמן הידור. גם updatepanel1 וגם label1 מופיעים בintellisense. איך אני אמור לשנות את הערך של הLABEL ? תודה,
 

HaRmosh

New member
נסה את זה:

updatePanel.FindControl("label1").Text = "blabla";​
למרות שנראה לי שהוא כן אמור להכיר את label1 ולתת לך לגשת ישירות.... אני די חדש מבחינת AJAX Extensions, וזה המקום לשאול - האם ה-scope של פקדים בתוך updatepanel הוא לא גלובלי ? ז"א, האם הם לא מוכרים למשל בתוך אירועים כמו Page_Load או מתודות אחרות של ב-class הראשי, Page ?
 

demultiplexer

New member
זהו שהו גם לא מכיר את UPDATEPANEL1

נראה כאילו הוא קצת התחרפן.. ניסיתי לאתחל את VS וכשזה לא עזר אז את המחשב אבל זה לא שינה כלום.
 

itzikbs

New member
נתקלתי בתופעה דומה

אני נתקלתי בזה בשימוש בפקד UpdateProgress בסופו של דבר ומסיבות אחרות לגמרי ( שהפקד הזה לא חושף לי מספיק דברים כ DIV פשוט ) השתמשתי במתודות ובממשק ה JavaScript (אם זה מעניין מישהו: Sys.WebForms.PageRequestManager.getInstance )המובנות החדשות על מנת להתגבר על התופעה. אני חושש שיש משמעות לכך שהשגיאה The name 'YourControl' does not exist in the current context והיא לא סתם באג אלא זה אומר שהפקד אינו בר-גישה ואין משמעות לגישה אליו בדרך זה אתה עושה זאת. לגבי השאלה שעלתה פה, ב ASP.NET AJAX 1.0 יש גישה מלאה לכל הפקדים ולכל העמוד (בכל פעולה AJAX) אבל לא תמיד תהיה לזה משמעות (!!!) אם העמוד לא נבנה ונעטף נכון עם Updatepanel-ים וטריגרים מתאימים ביניהם או שימוש ב Update. ביי איציק ב.
 
למעלה