Posts

Eval: Sometimes I like spagheti code

I just discovered some interesting features of the construct . Eval function uses reflection to evaluate a property of a bound object. I have two classes Product and Category and I want to display the available products in a page, by using a data bound control. public class Product { public int ID; public string Name; public int Stock; public DateTime Date; public Category Category; } public class Category { public string Name; public DateTime Date; } In a data template ( ItemTemplate for sample ) I can use the Eval function like: 1. very simple evaluation without using formats - will output the name - will output the stock ( ..and so on ) 2. using a format - for sample: 2009 Apr 06 - will output "10 items" if the stock is 10 3. Combining two or more properties: notice that the operators "+" are in the construction and the expression is not a concatenation between different constructs 4. Can use more dots! 5. Can use casting 6. What...

Using UrlRewritingNet and Elmah together

  UrlRewritingNet is an Url rewriting tool for ASP .Net and Elmah is a module for logging unhandled errors.   UrlRewritingNet can set a default location for “directory” requests via defaultPage property in <urlrewritingnet> section. When a file without extension is requested the defaultPage value is appended to the original URL.    Elmah provides a handler for getting the errors summary, usually called elmah.axd. This handler also responds to the followings requests:    /elmah.axd/rss – RSS errors list feed  /elmah.axd/digestrss – RSS digest  /elmah.axd/download –  comma separated errors list /elmah.axd/about – about page  /elmah.axd/stylesheet – the stylesheet used /elmah.axd/detail?id=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX – html single error summary  /elmah.axd/xml?id=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX – xml single  error summary /elmah.axd/json?id=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX – json single error summary    These requests are like a request for a file with...

Un required validator pentru DropDownList cu RangeValidator

Validatorul RangeValidator va aparea in UI ca un RequiredValidator. Utilizatorul nu va putea trece mai departe daca nu alege o optiune de la 1 la 5. :) <asp:DropDownList ID="ddlTitle" runat="server"> <asp:ListItem Value="0">Select Title</asp:ListItem> <asp:ListItem Value="1">Mr</asp:ListItem> <asp:ListItem Value="2">Mrs</asp:ListItem> <asp:ListItem Value="3">Miss</asp:ListItem> <asp:ListItem Value="4">Ms</asp:ListItem> <asp:ListItem Value="5">Dr</asp:ListItem> </asp:DropDownList> <asp:RangeValidator ID="rangeValidator" Text="*" ErrorMessage="The title is required." ControlToValidate="ddlTitle" Type="Integer" MinimumValue="1" MaximumValue="5" runat="server...

JQuery si WebMethod

Prin noiembrie 2006 descoperisem la HALO interactive posibilitatea de a apela dintr-o pagina HTML o metoda dintr-o pagina aspx folosind un ScriptManager. Trebuia sa fac o autentificare in doi pasi. ScriptManger-ul genereaza ceva JavaScript folosit pentru a construi apelul AJAX, dar si pentru a folosi o sintaxa de genul PageMethods.MethodName, valabila atata timp cat e setata true optiunea EnablePageMethods. Mult mai usor de scris e insa atunci cand se foloseste JQuery. O dezbatere am gasit aici . Vreau doar sa dau un exemplu intersant de folosit intr-un shopping cart. Intr-un astfel de site exista cred mai multe pagini statice, decat dinamice. Adica fizic mai multe html-uri decat aspx-uri. Acum pe fiecare pagina html sau aspx apare undeva in pagina numarul de produse puse in cos. Daca ar fi sa se aleaga Master Pages pentru a-l afisa, odata ce se adauga o pagina noua in site trebuie recompilat tot situl. Solutia cea mai buna e sa se foloseasca AJAX. Partea frumoasa e ca poti face cumpar...

Conversie data pentru cultura romana (ro-RO)

Vreau sa convertesc date calendaristice din cultura romana (ro-RO) din string in DateTime. Datele sunt de genul 8 Oct 2008, 9 Oct 2008, 12 Dec 2008. DateTime.TryParseExact accepta formatul "d MMM yyyy" , numai ca pentru cultura romana datele trebuie sa fie de forma 8 Oct. 2008, 9 Oct. 2008, 12 Dec. 2008 (cu punct dupa luna). Obtin expresia regulata pentru gasirea lunii din data, iar dupa luna inserez punctul. Pentru asta am nevoie de un MatchEvaluator care e un delegat cu signatura delegate string MatchEvaluator(Match m) static string Evaluator(Match match) { return match.ToString() + "."; } Evolutia pointerilor la functii incepand de la C# 1.0 pana la C# 3.0 e una pozitiva, in sensul claritatii codului. Daca in 1.0 trebuia sa scrii efectiv metoda ca membru al unei clase, iar in 2.0 nu e tocmai naturala inserararea codului printre parametri, in 3.0 expresiile lambda simplifica mult tehnica. var strDate = "8 Oct 2008"; var regForReplace = new Regex...

null == null ?

Test: T - SQL: if ( null = null ) print 'null == null' else print 'null != null' C#: Console.WriteLine(null == null); Ce afiseaza fiecare? Si de ce?

O fi fost vreun bug in Google Chrome?

Image
Ca si istoric, am vrut sa inspectez un element img cu imaginea inexistenta ( adica lipsea de pe server) Spre deosebire de FireFox, nu imi da optiunea de a restaura sesiunea dinaintea erorii.