שאלה בקשר לSTATIC

juliazulay

New member
שאלה בקשר לSTATIC

יש לי את ההגדרה הבאה
private static ArrayList myArr = new ArrayList();​
יש לי שאלה עקרונית שאני לא טופסת בנושא של STATIC, למה המערך שלי לאחר שהוא מאותחל בערכים מסוימים נשמר גם לאחר שאני סוגרת את הדפדפן נניח אם יש לי שתי כתובות EMAIL בתוך הARRAYLIST ואז הלקוח יצא מהדפדפן וחזר שוב לאותו הדף הערכים נשמרים בדיוק אותם ערכים, כיצד אני יודעת לאפס את הARRAYLIST שלי שהוא STATIC הרי אני לא יודעת שהלקוח עבר לדף אחר?
 

Admini

New member
זה לא נשמר רק לאותו לקוח

זה נשמר לכל הגולשים באתר. Static - גלובלי לכל האפליקציה. מה שאת מחפשת נקרא Session
 

juliazulay

New member
אז אתה בעצם מציע לי מערך

של סיישן, וחוץ מיזה אני צריכה משהו דינאמי להוסיף ערכים להוריד ערכים הבעיה שלי היא כזאת יש LIST BOX עם רשימת EMAILS של לקוחות , ובכול פעם שלקוח לוחץ על הEMAIL מסויים אז אותו הכתובת עוברת לLISTBOX אחר ובמקביל אני שומרת את הID של אותו EMAIL שהלקוח מסמן לו וכן הלראה, ועכשיו בכול פעם שהלוקח ינסה להכניס את הכתובת הבאה יתבצע POSTBACK לשרת ואז הID הקודם ימחק לי מן הסתם ולכן השתמשתי במערך STATIC של ARRAYLIST האם יש לך המלצה יותר טובה לבעיה שלי
 

yairov

New member
תגובה

קודם כל, אין כאן סיבה להשתמש ב-static. ה-ArrayList משמש משתמש אחד כל פעם ולא את כל המשתמשים. דבר שני, תשמרי את הערכים (ה-IDs) בתוך ה-ViewState וכך ברגע שמשתמש סגר את הדפדפן, ה-State שלו נעלם ביחד איתו.
 

J u n k y

New member
צריך להיזהר כשמשתמשים ב - static

באפליקציית WEB. לא זו בלבד שהם משותפים לכל המשתמשים, אלא יש להם גם נטיה להתאפס ללא סיבה נראית לעין. אי אפשר לסמוך על כך שהערך שלהם ישמר.
 

juliazulay

New member
אני שואלת אותך את אותה שאלה כמו Adm

תסתכל בבקשה בתגובה שלי אליו ואודה לך אם תוכל לתת לי איזה כיוון
 

J u n k y

New member
נשמע יל כמו בעיה ל - client side

בדיוק היום עשיתי דבר כזה: מאכלסים את ה - Listbox הראשון בטעינה של העמוד, ואז מעבירים את הערכים הרצויים ל - Listbox השני ע"י Javascript. כשהטופס נשלח, בשרת, קולטים את הנתונים מהרישמה השניה ועושים מה שצריך. קצת יותר מורכב, אבל נראה הרבה יותר מקצועי. אם את צריכה הכוונה, תשאלי.
 

J u n k y

New member
קודם כל

זו פונקציה להוספת אופציה לרשימה ב - JS:
function addToSubCat(target, val, text) { var oOption = document.createElement("OPTION"); //FF falls here document.getElementById(target).options.add(oOption); try { //IE falls here (throws exeption) document.getElementById(target).add(oOption, null); } catch (e) {} try { //IE Falls here (throws exeption) oOption.appendChild(document.createTextNode(text), document.createTextNode(val)); } catch (e) {} //FF falls here oOption.innerText = text; oOption.value = val; //alert(oOption.innerText) }​
באותה צורה, אפשר גם להסיר פריטים מהרשימה, עם (options.remove(4. היא מקבלת: את ה - id של הרשימה, הטקסט וה - value שרוצים להכניס. שימי לב שלא תמיד ה - ID של הפקד שמופיע ב - HTML הוא ה - ID שנתת. כדי למשוך את כל הפריטים ברשימה לשרת: צריך לתת אירוע צד לקוח לפקד ששולח את הטופס, שבו עוברים על הרשימה ומסמנים את כל הפריטים שבה (selected=true). ואז הערכים המסומנים בתיבה יופיעו באוסף ה - Request.Form מופרדים בפסיקים. לדוגמה, אם התיבה שלנו נקראת emails אז כדי לראות את כל הערכים בתיבה אפשר לעשות:
Request.Form[emails.UniqueID]​
זה מחזיר סטרינג עם גם המיילים מופרדים בפסיקים. טוב - אולי זה קצת הרבה יותר מורכב...
 

juliazulay

New member
קודם כל תודה רבה לך, ובעקבות הדרך ש

בה המלצתה לי לעבוד עלתה לי שאלה שכבר המון זמן מעסיקה אותי ואני נורא אשמח אם תוכל לתת לי כיון כי נראה לי שJS הוא באמת הפתרון, יש לי שלושה DDL שבחירת אחת מהן על ידי הלקוח מביאה נתונים מDB לDDL השני וכן הלאה וכאשר בוחרים בDLL השלישי אני לוקחת נתונים מDB ושופכת לתוך פקד Literal כי הנתונם שאני שולפת זה בעצם קוד HTML והפקד הזה פשוט מצויין כי הוא חוסך לי המון עבודה הוא פשוט ממיר את קוד הHTML לעיצוב שלו באופן אוטומטית וכך לא אני צריכהה להתעסק בזה, השאלה שלי הכיצד אני מונעת את הREFRESH לדף בכול פעם שמתבצע POST BACK זה קצת מכער לי את המודול ונראה לי שהפתרון הוא JS אבל כיצד?
 

J u n k y

New member
זהו שאת לא עושה postback

את יוצרת כפתור פשוט בצד לקוח ומשייכת אליו אירוע של צד לקוח. שום postback. ה - postback היחיד הוא בשמירה - ואז כנראה שתרצי להעביר לעמוד אחר לאחר העדכון.
 

juliazulay

New member
נשמע טוב אך לא הבנתי הכיצד אני

מפעילה DDL ואז מאפשרת מהלקוח לגשת לשרת לקחת משם נתונים ולזרוק בDDL השני וכן הלאה הרי אני מביאה נתונים מהשרת ואתה בעצם אומר לי שהJS ניגש הכצד לממש דבר כזה, אני יודעת באמצעות הAJAX 2.0 אני יכולה לקבל פקד מוכן משהו כמו CASTINDROPDOWNLIST או משהו בכיוון, אבל כל הקטע בהחלט הצלחתי לגרום באמצעות JS + WS לגשת לשרת ולהביא נתונים לכל אחד מהDDL אבל כאשר הפעלתי את השלישי והייתי אמורה לזרוק את הנתונים לליטרל כאן הסתבכתי ואף אחד לא ידע לתת לי את הפתרון ולכן זנחתי את הCASCADINGDROPDOWNLIST ועכשיו אני מחפשת פתרון אחר , האם תוכל להמיר את התשובה שלך למחלקות שאני אמורה להשתמש + קצת הפניות למאמר שבאמצעותו אוכל להבין את הרעיון שאתה מדבר עליו?
 

J u n k y

New member
כנראה לא הבנתי אותך

לפי מה שהבנתי, רק רצית להעביר כתובות מ - DDL אחד לשני. אם צריך גם לגשת לשרת, אז הפרתון הוא או AJAX או פתרון אחד שמשלב IFRAME נסתר שמריץ פונקציות JS שמאכלסות DDL.
 

ציפי81

New member
../images/Emo26.gifAJAX

ואני לא מתכוונת לרכיב החדש של .net שנקרא בעבר Atlas, אלא ל-Ajax הבסיסי. הוא עושה את מה שאת מבקשת.
 

juliazulay

New member
זהו שכנראה שנדבקתי יותר מידי לפקדים

החדשים של AJAX 2.0 וזה מה שהגביל אותי גם, אני חושבת שאת צודקת צריך לחקור את הAJAX הבסיסי ואלי שם הפתרונות להכול הרי הם סך הכול עטפו וארזו פקדים מוקרים בשיטה הזאת אם אני לא טועה יוליה
 
למעלה