Filtering with ComboBox (DropDownList) in telerik grid (RadGrid)

יום שני, ינואר 18, 2010

  לא מזמן קנינו את החבילה של Telerik ל - Web, אני חושב שזה בחירה נבונה לעבוד עם הפקדים שלהם.   בכל מקרה רציתי להדגים כאן, איך ניתן לייצר גריד שיש לו את האפשרות לפלטר בעזרת ComboBox שנותן לבחור מתוך הערכים.       לגריד של telerik יש מנגנון פילטרניג מובנה - אבל אין את האפשרות ל - Combo. כדי שיהיה לנו Combo צריך לעשות את הדבר הבא.   כתבתי מחלקה כללית שתשמש אותי בכל הפרוייקטים שאני עובד עם Telerik.   אנחנו צריכים לרשת מהמחלקה GridTemplateColumn ולדרוס את המתודות הבאות   SetupFilterControls SetCurrentFilterValueToControl GetCurrentFilterValueFromControl SupportsFiltering ConvertValueIfEmpty   והנה המימוש public class DDLFilterColumn : GridTemplateColumn {   המתודה הראשונה protected override void SetupFilterControls(TableCell cell) {     RadComboBox rcBox = InitProperties();     cell.Controls.Add(rcBox);       if (!DesignMode)     {         FireFillingItems(this, new DDLFilterItemsEventArgs(rcBox));    ...
תגובה אחת

פילטור ב – RadGrid בעזרת CmoboBox

  לא מזמן קנינו את החבילה של Telerik ל - Web, אני חושב שזה בחירה נבונה לעבוד עם הפקדים שלהם.   בכל מקרה רציתי להדגים כאן, איך ניתן לייצר גריד שיש לו את האפשרות לפלטר בעזרת ComboBox שנותן לבחור מתוך הערכים.       לגריד של telerik יש מנגנון פילטרניג מובנה - אבל אין את האפשרות ל - Combo. כדי שיהיה לנו Combo צריך לעשות את הדבר הבא.   כתבתי מחלקה כללית שתשמש אותי בכל הפרוייקטים שאני עובד עם Telerik.   אנחנו צריכים לרשת מהמחלקה GridTemplateColumn ולדרוס את המתודות הבאות   SetupFilterControls SetCurrentFilterValueToControl GetCurrentFilterValueFromControl SupportsFiltering ConvertValueIfEmpty   והנה המימוש public class DDLFilterColumn : GridTemplateColumn {   המתודה הראשונה protected override void SetupFilterControls(TableCell cell) {     RadComboBox rcBox = InitProperties();     cell.Controls.Add(rcBox);       if (!DesignMode)     {         FireFillingItems(this, new DDLFilterItemsEventArgs(rcBox));    ...
אין תגובות

Change ValidationGroup in client side (Java Script)

יום ראשון, ינואר 17, 2010

  בתפוז עלתה שאלה, כיצד ניתן לשנות את ה - ValidationGroup בצד הלקוח. (אני אוהב התעסקות עם ולידציות).   אז ככה. (ניתן להוריד את הדוגמא, מכאן)   נניח שיש לנו את ה - HTML הבא (שני RadioButton, ארבעה תיבות טקסט, ארבעה RequiredFieldValidator, (עם שני ValidationGroup) בנוסף ValidationSummary ולחצן)   <input type="radio" name="valid" id="Radio1" value="group1" checked="checked" onclick="ChnageGropu(this)" />1 <input type="radio" name="valid" id="Radio2" value="group2" onclick="ChnageGropu(this)" />2 <br />   <asp:TextBox ID="txt1" runat="server"></asp:TextBox> <asp:RequiredFieldValidator ID="rfv1" ValidationGroup="group1" runat="server"     ControlToValidate="txt1" ErrorMessage="txt1" Text="*"></asp:RequiredFieldValidator> <asp:TextBox ID="txt2" runat="server"></asp:TextBox> <asp:RequiredFieldValidator ID="rfv2" ValidationGroup="group1" runat="server"     ControlToValidate="txt2" ErrorMessage="txt2" Text="*"></asp:RequiredFieldValidator> <br /> <br />   <asp:TextBox ID="txt3" runat="server"></asp:TextBox> <asp:RequiredFieldValidator ID="rfv3" ValidationGroup="group2" runat="server"     ControlToValidate="txt3" ErrorMessage="txt3" Text="*"></asp:RequiredFieldValidator> <asp:TextBox ID="txt4" runat="server"></asp:TextBox> <asp:RequiredFieldValidator ID="rfv4" ValidationGroup="group2" runat="server"     ControlToValidate="txt4" ErrorMessage="txt4" Text="*"></asp:RequiredFieldValidator> <asp:ValidationSummary ID="vs" runat="server" ShowMessageBox="true" ShowSummary="false"     ValidationGroup="group1" /> <br /> <br...
אין תגובות

למה חשוב לבדוק IsValid בצד השרת כשמשתמשים עם validators (איך אפשר לעקוף (לפרוץ) את הבדיקות בצד הלקוח)

יום שישי, ינואר 1, 2010

   (זהו פוסט ה - 200 שלי, ואני חושב שזהו הפוסט הראשון בבלוגייה של השנה הלועזית החדשה)   שיש לכם דף עם תיבת טקסט שמוצמד אליו RequiredFieldValidator ולחצן. בזמן לחיצה כותבים על הדף את השעה הנוכחית.   הקוד נראה כך:   <asp:TextBox runat="server" ID="txt1" /> <asp:RequiredFieldValidator ErrorMessage="*" ControlToValidate="txt1" runat="server" />   <asp:Button Text="text" runat="server" ID="btn" OnClick="btn_click" />  צד השרת:     protected void btn_click(object sender, EventArgs e) {Response.Write(DateTime.Now.ToLongTimeString()); }   כשנריץ נראה את הדף הבא       אם ננסה ללחוץ על הלחצן ללא ערך בתיבת הטקסט לא תתבצע ריצה לשרת ואחנו נראה כוככבית ליד תיבת הטקסט       כעת נראה איך כל האקר מתחיל עוקף את הבדיקה.   בהנחה שיש לכם IE8 מותקן לכם IE Developer Toolar במידה ויש לכם IE7 תוכלו להוריד את...

Redirect to login page in Session_End event

יום רביעי, דצמבר 23, 2009

  טוב, אי אפשר באמת לעשות את מה שכתבתי בכותרת, מכיוון שהשרת מפעיל את האירוע של Session_End והחוק הידוע של http, שחייב להיות Request כדי שיחזור Response.   אבל אם אתם בכל זאת רוצים שכשנגמר ה - Seesion במידה והדפדפן עדיין פתוח שזה יעבור בצורה אוטומטית לדף הלוגין תוכלו לכתוב את הקוד הזה: (במתודת Page_Load - וממולץ שיהיה לכם דף PageBase שכל הדפים יורשים ממנו ושם תכתבו את הקוד הזה)   Response.AddHeader("Refresh", Convert.ToString((Session.Timeout * 60) + 5));   if (Session.IsNewSession) {     Response.Redirect("Login.aspx"); }     השורה הראשונה תגרום לריענון של הדף חמש שניות אחרי שה - Seesion_End קרה.   במידה ומדובר בגישה של ראשונה של ה - Session הזה (מה שיהיה נכון) נעבור...
5 תגובות

הוספת קובץ CSS ל – User Control ול – Master Page

יום שני, דצמבר 21, 2009

  כשעובדים עם Master Page או עם User Control - אחד מהבעיות הנפוצות הוא כיצד לקשר אליו קובץ CSS, הרי בכל פעם הנתיב משתנה מכיון שה - User Control משתלב בתוך הדף, והדף יכול להיות כל פעם מקונן בתוך תיקיות אחרות.   אפשר לעשות את זה מקוד, אבל אני לא אוהב את זה (אלא אם כן אתם נוהגים לעשות את זה תמיד ובמקום קבוע, כך שלא צריך לחפש בכל פעם מי הוא קובץ ה - CSS.   ב - User Controls אפשר לכתוב משהו כזה   <link rel="stylesheet" type="text/css" href='<%=ResolveClientUrl("~/CSS") %>/Header.css' />   ב - Master Page לעומת זאת חייבים לכתוב את זה בתוך ה - body ולא...
תגיות: , , ,
תגובה אחת

גישה ל – Session מתוך handler

יום ראשון, דצמבר 20, 2009

  אם אתם יוצרים handler כלשהו (ashx) ואתם רוצים להגיע ל - session בעזרת contex.Session, תווכחו לדעת שזה null, כדי שתוכלו לגשת אתם צריכים אחד מהשניים,   אם אתם צריכים רק לקרוא תוסיפו את ה - interface הבא IReadOnlySessionState   ואם אתם רוצים גם לכתוב תוסיפו את ה - interface הבר IRequiresSessionState     שני ה - interface הם marked interface כלומר ללא שום מימוש (יותר מתאים שהם היו attributes)     הקרדיט מגיע ל - 15Secounds.com בפוסט הבא HTTP Handlers and HTTP Modules in ASP.NET (מומלץ לקריאה)
3 תגובות

Set Text for asp:TextBox when TextMode=Password

יום חמישי, דצמבר 3, 2009

  הקרדיט של הפוסט הנוכחי שייך לדובי פרלה אחד מהבוגרים המצטיינים של קורס פיתוח תוכנה לחרדים     כשיש לכם תיבת טקסט שמוגדרת כ - password ואתם רוצים בצד השרת לתת לה ערך כלשהו, במידה ותתנו ערך למאפיין Text זה לא ישפיע.   מה שניתן לעשות זה לכתוב   txtPwd.Attributes = "password";     לדעתי זה מאוד מעצבן שכעושים PostBack לשרת, הערך של תיבת הטקסט שיש בה את הסיסמא נמחק וצריך להקליד מחדש.   מה שאפשר לעשות זה להירשם ל PreRender של תיבת הטקסט, ולכתוב - protected void txtPwd_PreRender(object sender, EventArgs e) {     txtPwd.Attributes = Request; }      
תגיות: , ,
5 תגובות

System.ArgumentNullException: Key cannot be null. Membership.UpdateUser

יום שני, נובמבר 30, 2009

  במידה וירשתם מ - MembershipProvider ומ - Membership יש סיכוי טוב מאוד שכשתנסו להפעיל את מתודת Membership.UpdateUser תקבלו שגיאה System.ArgumentNullException: Key cannot be null     זה קצת מוזר כי גם אם הגדרתם בקונפיג את ה - defaultProvider למימוש שלכם זה עדיין יקרה, מכיון של - Membership יש שני בנאים הראשון מוגדר כ - protected והוא לא מקבל שום פרמטרים, השני מוגדר כ - public ומקבל כל מיני פרמטרים שאחד מהם הוא ה - providerName.   ברגע שהפעלתם את הבנאי ללא שום פרמטר הוא לא יודע לאיזה provider ללכת ולכן הוא נופל בקטע קוד הזה   internal virtual void Update() {     Membership.Providers.UpdateUser(this);     this.UpdateSelf(); }   כשהוא מנסה לגשת בעזרת...
תגיות: , , ,
אין תגובות

יצירת מנגנון shortcut url באמצעות מנגנון ה – routing של asp.net

יום שבת, נובמבר 21, 2009

  יחד עם ה - MVC הגיע dll מאוד נחמד ששמו System.Web.Routing, הוא משמש מנגנון מאוד מרכזי ב - MVC כדי להפנות לדף המתאים לפי הבקשה . היות שהוא כל כך מוצלח ניתן להשתמש בו גם ב - asp.net לצרכים אחרים.   (חשוב לציין שיכול שמן הסתם רוב הלינקים בפוסט לא יעבדו - אלא הם הדגמה למה אפשר לעשות)   לדוגמא - אפשר להשתמש בו כדי לייצר מנגנון של Shortcut url - כלומר במקום שיצטרכו לכתוב http://www.sela.co.il/syl/syllabus.aspx?CourseCode=c2&CategoryID=165 אפשר לכתוב http://www.sela.co.il/url/syllabus/c2   או אפילו אפשר לייצר קיצורי דרך לאתרים שהם לא בדומיין שלנו - לדוגמא במקום להגיע לבלוג שלי עם הלינק http://blogs.microsoft.co.il/blogs/shlomo/ אפשר להגיע אליו דרך http://www.sela.co.il/url/shlomo   אז כמובן שמן הסתם תהיה מערכת ניהול ויש לנו...
6 תגובות