Adding control to DetailsView dynamically

28 ביולי 2009

  בהמשך לפוסט הזה, (שהראה איך להוסיף 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.Cells.Controls.Add(chk); }     אבל כשנלחץ על - Update לא נמצא את ה - CheckBox ב - Collection של ה - Controls. מהסיבה הפשוטה שהיות שזה נוצר בצורה דינמית אנחנו חייבים לייצר אותו כל פעם מחדש (עם אותו...
4 תגובות

Creating RequiredFieldValidator for DetailsView dynamically

  אחד מהפקדים הנחמדים לעבוד עם מידע הוא ה - DetailsView, הוא יודע להציג מידע לאורך במקום לרוחב (כמו Grid) ומתאים מאוד לעידכון של שורה אחת.   בדרך כלל מה שאני עושה זה להציג Grid עם כל הנתונים וכשבוחרים שורה מתוך ה - Grid אני מציג את הנתונים של אותה שורה ב - DetailsView.     לאחרונה רציתי לעבוד איתו בצורה דינמית כלומר - לא להגדיר מראש ב - aspx את כל העמודות. ורציתי להוסיף לאחד העמודות RequiredFieldValidator. נשמע פשוט לא, אז נראה את הקוד.   בהתחלה אני מקשר טבלה (עם שורה אחת) ל DetailsView   protected void Page_Load(object sender, EventArgs e) {     if (!IsPostBack)     {         Bind();     } }   private void...
תגובה אחת

שיטוח של אובייקטים לקובץ – כתיבה לקובץ וקריאה מקובץ

23 ביולי 2009

  הפעם אני רוצה לכתוב פוסט לטובת אלה שנכנסים לעולם ה - Net. יצא לי בזמן האחרון כמה פעמים להדגים קריאה וכתיבה לקובץ (סירילזיציה ודיסיריליזציה), חשבתי שכדאי לכתוב פוסט על זה, כי מן הסתם יהיו עוד אנשים שלומדים ומחפשים הסבר על הנושא.     הרעיון בלקחת אובייקט ולשמור אותו בקובץ הוא כדי שנוכל לשמור על המצב של האפליקציה, נניח שיש לנו תוכנה לניהול עובדים, כשהתוכנה תיסגר כל הנתונים שיש לנו בזיכרון יעלמו, ולכן אנחנו רוצים לשמור את הנתונים שלנו בדיסק הקשיח, ולמעשה לשטח את האובייקטים שלנו מהזיכרון הנדיף לזיכרון קבוע - מה שנקרא Serialization.    את דוגמת הקוד אפשר להוריד כאן.   אז איך מבצעים את זה,...
תגיות: , , ,
9 תגובות

שערי מטבע מבנק ישראל ב – C#

19 ביולי 2009

  ראשית כל אני רוצה להדגיש, שהדוגמא להלן מייבאת את שערי המטבעות מהאתר של בנק ישראל וכדי להציג את התוכן באתר שלכם, אתם צריכים לקבל מהם אישור, כאן יש כתובת מייל (בתחתית העמוד) שניתן לבקש אישורים להצגת התוכן באתר שלכם.     לעניינינו. לבנק ישראל יש שירות של שערי המטבעות בקבצי xml. כתבתי class שיודע להחזיק את התוכן של אותו קובץ xml. את ה - class המלא תוכלו להוריד מכאן. בפוסט הזה אני רוצה להראות את המתודות Fill (שמביאות את התוכן מבנק ישראל)     יש לנו enum בשם CurrencyCode       public enum CurrencyCode     {         All = 0,         SAL = 77,         USD = 01,         GBP...
תגיות: , ,
10 תגובות

Addins for Internet Explorer Context Menu

16 ביולי 2009

  כבר יש לי כמה תוספות נחמדות עבור IE שמופעלות באמצעות ה - Context Menu - חשבתי לכתוב פוסט אחד שירכז את כולם ובכל פעם שאכתוב AddIn נוסף אני אעדכן את הפוסט הזה.   אפליקציה לניהול ה - Context Menu ניתן להוריד כאן, ולקרוא על זה כאן.   ביטול בדיקת ה - CAPTCHA במערכת הבלוגים של מייקרוסופט. את הסקריפט ניתן להוריד כאן, ולקרוא על זה כאן.   כתיבה מימין לשמאל או משמאל לימין במערכת הבלוגים של מייקרוסופט. את הסקריפטים ניתן להוריד כאן, ולקרוא על זה כאן.   כניסה אוטומטית ל - Microsoft Outlook Web Access. את הסקריפט ניתן להוריד כאן, ולקרוא על זה כאן.   פתיחת Notepad ושליחת הטקסט המסומן....
אין תגובות

Export selected text from IE to notepad using Context Menu

15 ביולי 2009

  מי שזוכר, כתבתי אפליקציה נחמדה להוספת פעולות ל - Context Menu של IE.   מישהו בשם חיים כתב לי את ההערה הבאה:   לא ממש הבנתי איך להשתמש בה. אני מעוניין לפתוח notepad עם אותו קטע טקסט שבחרתי. איך עושים את זה? אז כמובן שהאפליקציה שלי לא יודעת לעשות כאלו דברים, היא רק עוזרת לקנפג את ערכי הרישום בצורה פשוטה, את הפעולות שרוצים לבצע בזמן לחיצה ב - Context Menu צריך כמובן לכתוב לבד.   אז כדי להיות נחמד לחיים (וגם כי היה לי משעמם) החלטתי לממש לו את זה.   מכאן אפשר להוריד את הדוגמא     כתבתי את התוכנית הבאה: שיודעת להפעיל Notepad ולשלוח פנימה טקסט.   class Program {     [DllImport("user32.dll", EntryPoint =...
4 תגובות

הודעות שגיאה אנושיות – בבקשה

  לפעמים יש תוכנות שהייתי רוצה להכיר את המתכנתים שלהם.   יש לנו סורק (שמאפשר לסרוק מקוד). הנחנו את הדף לא לגמרי במקום המתאים, והנה הודעת השגיאה שקבלנו:       מבינים, לא שמתי את הדף בדיוק במקום ולא רק שאני לא מקבל פירוט על השגיאה, אני מקבל הודעה שמשהו קטסטרופלי קרה.   אז, כשאתם מפתחים תנסו לתפוס את השגיאות ולתת הודעות אנושיות.
תגיות: ,
4 תגובות

New Resource Editor – development time as well as after deployment.

14 ביולי 2009

  דרך נפוצה מאוד לשמור הודעות/תמונות וכד' היא ב - Resource file. הסבר על הנושא.   הבעייה הגדולה שלהם שמי שיכול לטפל ב - Resources זה רק המפתחים (או למי שיש Visual Studio) מה שגורם לכך שכשהבודק מוצא הודעת שיש בה שגיאה הוא צריך לעבור את כל התהליך של באג עד שימצא המפתח שיואיל בטובו לתקן את הודעת השגיאה, ואותו דבר יקרה עם החברה תביא אדם מיוחד לכתיבת ההודעות.   גרוע מכך - נניח שיצרנו גרסה ראשונית של המוצר - מנהלי המוצר טסים לחו"ל כדי להתקין שם את הגרסה - הכל בסדר עד שאחד מקוני המוצר אומר "בסוף המשפט צריך לכתוב נקודה" או משהו...
תגיות: , ,
4 תגובות

UnmanagedMemoryStream and PinnedBufferMemoryStream

12 ביולי 2009

  יש class מעניין בשם UnmanagedMemoryStream, התפקיד שלו בחיים זה לספק גישה לבלוקים בזיכרון קוד שאינו מנוהל. בדוגמא ב - MSDN יש את דוגמת הקוד הבאה: (שם זה מופיע עם הערות)   unsafe {     byte message = UnicodeEncoding.Unicode.GetBytes("Here is some data.");     IntPtr memIntPtr = Marshal.AllocHGlobal(message.Length);     byte* memBytePtr = (byte*)memIntPtr.ToPointer();       UnmanagedMemoryStream writeStream = new UnmanagedMemoryStream(memBytePtr, message.Length,                                                                     message.Length, FileAccess.Write);     writeStream.Write(message, 0, message.Length);     writeStream.Close();       UnmanagedMemoryStream readStream = new UnmanagedMemoryStream(memBytePtr, message.Length,                                                                 message.Length, FileAccess.Read);     byte...
תגיות: , , ,
3 תגובות