בעיה בשילוב JS בצד שרת

  • פותח הנושא era19
  • פורסם בתאריך

era19

New member
בעיה בשילוב JS בצד שרת

הי, יש לי פונקציה שנקראת מפונקציה אחרת בתוך הפונקציה הפנימית אני מבצע לוגיקה ובמידה והלוגיקה לא מסתיימת בהצלחה אני רוצה להוציא הודעה עם כפתור "OK" לגולש עם פרטי השגיאה. בשביל זה כתבתי איזו פונקציה בצד שרת שיוצרת קוד בJS שמבצע למעשה alert הבעיה היא שהוא לא מציג לי את הalert כאשר הוא מופעל מהפונקציה הפנימית (כאשר הקריאה לalert מתבצע בסוף הpage_load מוצגת ההודעת alert ככה שהפונקציה שמציגה alert עובדת תקין) בdebug אני רואה שהקוד שלי מגיע לקוד שמציג את הalert וממשיך בחזרה לפונקציה שקוראת לו, שהיא עצמה חוזרת לפונקצצית page_load האם אין דרך להציג הודעות לגולש בpopup פשוט מפונקציה פנימית?? חייב להיות לזה פתרון אודה לעזרתכם
 

era19

New member
הסבר

יש לי פונקציה של event click על כפתור. שם יש לוגיקה אם הגולש בחר מספיק פרמטרים ומה המצב בsession , במידה ולא תקין מבחינתי אני רוצה להציג לו alert עם הודעת שגיאה מסודרת. בשביל זה הוספתי את השורה הבאה לevent_click string sc ript = "<s cript type=\"text/javascr ipt\">alert ('jkj k'); < / s cript>"; this.RegisterClientScriptBlock("mm", script); הקוד הזה בפונקציה לא מקפיץ alert אבל אם אני מעתיק את הקוד הזה לpage_load כן קופצץ לי ההודעה... בdebug אני רואה שאני כן מגיע גם לקוד בevent_click רק שמשהו מונע מהalert לקפוץ מישהו נתקל בבעיה דומה?
 

era19

New member
אולי בגלל שהכפתור תחום בתוך updatePanel?

כי יצרתי עכשיו סתם פונקציה ודחפתי שם את הקוד של הalert וזה גם עובד לי. כך שאולי זה קשור לזה שהכפתור נמצא בתוך updatePanel?! אם כן מה הפתרון? אני חייב שהוא יהיה בUpdatePanel לטובת ביצועים
 

pitoach

New member
כמה נקודות חשובות

1. שימוש באגקס המובנה של asp.net הוא אסון ואם אין לך חובה לעשות איתו שימוש הרי שזה כמעט אסור מבחינת רוב אנשי המקצוע (אני לא אכנס לעומק ל"למה" אבל בוא פשוט נסביר בקצרה בצורה לא ממש מדוייקת/מלאה שכל העמוד מעובד מחדש בשביל לחדש תוכן בחלק קטן מהעמוד בעוד באגקס נקי אתה פשוט מביא א הנתונים שאתה צריך) אתה רושם "בUpdatePanel לטובת ביצועים"
UpdatePanel הוא אחד מאוכלי המשאבים המיותרים ביותר בשימוש של אגקס... הוא לא נועד למיטוב משאבים אלא למיטוב נוחות וזמן הפיתוח בלבד עם כל מה שכתבתי בסופו של דבר גם אני עובד עם האגקס המובנה לפעמים (מעט)
2. הבעיה שאתה מציג מוכרת כמו בעיות אחרת וקשורה לנושא של מסלול החיים של עמוד בטכנולוגיית asp.net web form (הטכנולוגיה בה אתה עושה שימוש כפי הנראה). מומלץ לעבור לעומק ולשלוט לעומק במסלול החיים חבר את מסלול החיים של העמוד עם שימוש ב updatePanel וקיבלת אכן מקור לבעיה אם אתה לא שולט בכך. נראה מהתשובה שלך שאתה חשבת שאם אתה מכניס חלק ל UpdatePanel אז רק חלק זה מעובד וכו' ולכן אמליץ לקרוא יותר על התיאוריה של האובייקט. * אם היה קוד דמו פשוט עם הבעיה בלבד אולי הייתי עובר עליו במהירות אבל ככה אין לי כוח לנחש מה בדיוק עשית 3. אני ממליץ לחפש קצת חומר על ClientScriptManager וכן על RegisterStartupScript (אובייקטים של דוטנט שאולי השימוש בהם יעזור לך לניהול סקריפטים בצד הלקוח) מקווה שזה עוזר מעט
 
למעלה