DCSIMG
Adding control to DetailsView dynamically - שלמה גולדברג (הרב דוטנט)

שלמה גולדברג (הרב דוטנט)

מרצה בסלע ויועץ בעולם ה - net.

Adding control to DetailsView dynamically

 

בהמשך לפוסט הזה, (שהראה איך להוסיף Validator ל - DetailsView שנוצר בצורה דינמית) אני רוצה להדגים איך להוסיף פקדים בצורה דינמית.
 
לפני הכל, את המאמר הבא - ASP.NET Page Life Cycle Overview כל מפתח ב - ASP.NET צריך להכיר בעל פה.
 
 
נניח שבזמן Edit אנחנו רוצים להוסיף CheckBox לתא הראשון.
 
הקוד יראה כך:
 

protected void DetailsView1_ModeChanging(object sender, DetailsViewModeEventArgs e)

{

    DetailsView1.ChangeMode(e.NewMode);

    Bind();

 

    CheckBox chk = new CheckBox();

    chk.ID = "CheckBox1";

    DetailsView1.Rows[0].Cells[1].Controls.Add(chk);

}

 
 
אבל כשנלחץ על - Update לא נמצא את ה - CheckBox ב - Collection של ה - Controls. מהסיבה הפשוטה שהיות שזה נוצר בצורה דינמית אנחנו חייבים לייצר אותו כל פעם מחדש (עם אותו ID).
 
אבל היות שה - ViewState נטען אחרי ה - Init המקום המוקדם שבו נדע מה הסטטוס של ה - DetailsView הוא ב - PreLoad.
 

protected override void OnPreLoad(EventArgs e)

{

    base.OnPreLoad(e);

 

    if (DetailsView1.CurrentMode == DetailsViewMode.Edit)

    {

        CheckBox chk = new CheckBox();

        chk.ID = "CheckBox1";

        DetailsView1.Rows[0].Cells[1].Controls.Add(chk);

    }

}

 
 
ועכשיו באירוע של DetailsView1_ItemUpdating נוכל לשלוף מתוך ה - CheckBox את המידע שלנו.

תוכן התגובה

Shlomo כתב/ה:

אני מדבר על מצב שזה מקושר.

באירוע ItemUpdating  או itemInserting אתה יכול לשלוף את המידע מהפקדים הדינמיים ולשלוח ל - DataSource

# July 28, 2009 11:58 PM

עמירם כתב/ה:

תודה רבה,

יש לי בקשה קטנה,

חיפשתי די הרבה בגוגל ולא מצאתי תשובה לכך.

אשמח אם תוכל לפרם פוסט בנוגע להצגת המשתמשים המחוברים לאתר.

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

צום קל,

ושוב תודה .

# July 29, 2009 11:00 PM

אליאור כתב/ה:

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

משהו יפה שלא עשו עד עכשיו , אני לא יודע אם חשבו עליו..

אבל אפשרי להריץ שרת של Mirc ברקע ולפתוח מספר שרתים של מירק, כידוע הם יודעים לתפקד טוב מאוד עם מספר שרתים ולהרכיב שרת אחד גדול שמתאחד על דומיין כלשהו ( נגיד כמו NAMESCPACE , שניתן לפנות לכל הבנים דרך האב )

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

הקטע היפה פה, שאתה לא חייב להיות טייקון כדי להריץ את האופציה הזאת, אתה יכול להתחבר לשרתים שכבר קיימים היום ברשת ולהשתמש בהם , הרי לזה הם מיועדים לצאטים :)

ואתה יכול ליצור 2 סוגים של שרתים ( אפילו אחד שמריץ לך 2 סרביסים )

1. סרביס שהתפקיד שלו זה לכתוב לצאט.

2. סרביס שהתפקיד שלו זה לקרוא מהצאט.

האחד מפענח את השני, וגם אתה משתמש בפלטפורמה פתוחה, על שרתים חינמיים אז חסכת לך תעבורה של שרת, עומס בטיפול בנתונים, כל מה שאתה צריך זה 2 חיבורי SOCKET לMIRC ויש לך שרת של צאט שיכול להכיל לך אלפי גולשים בו זמנית על תשתית של MULTI-SERVER בעלויות של שרת אחד.

# August 10, 2009 4:28 PM
שלח תגובה

(שדה חובה)  

(שדה חובה)  

(אופציונלי)

(שדה חובה) 

Please add 4 and 8 and type the answer here:


Enter the numbers above: