Posts

Showing posts from October, 2008

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 cumparat…

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(@"[…