Inmiddels ben ik aanbelandt bij het designen van m'n nieuwe weblog. Nu wilde ik voor sommige onderdelen ronde hoekjes gebruiken, omdat dat helemaal hip is tegenwoordig.
Nu biedt het AJAX framework hier een mooie extender voor die je bij ASP.Net panels kunt gebruiken.
Gisteren wilde ik die dus gebruiken, nou vergeet het maar. Die dingen komen niet op mijn website(s).
Het implementeren van die rounded corner extenders is niet enorm lastig. Ongeveer 5 regels code. Het probleem zit hem in het kleuren van de lijnen. Iemand heeft het lumineuze idee gehad dat de ronde hoekjes worden opgebouwd uit tientallen div-blokjes van een hoogte van 1 pixel en waarvan alleen de borders (hoekjes} een kleur hebben. Deze kleur moet je in de code van je webpagina opgeven. Nou heb ik daar op zich niets op tegen. Het probleem is echter dat deze tientallen div'jes geen ID hebben en geen CSS klasse.
Niet echt W3C dus en al helemaal lastig om ze een andere kleur te geven dan je in de code opgeeft.
Je wilt natuurlijk niet dat bij iedere design update, je ook je code moet updaten. Daar is CSS voor uitgevonden.

Ja, ik kan er wel work-arounds voor gaan verzinnen, maar daar heb ik geen zin in. Het blijft een bagger oplossing, hoe je het ook wend of keert.
Voor het nieuwe design bedenk ik wel wat anders dan ronde hoekjes, of ik maak ze op een andere manier. Via Google kun je tientallen andere manieren vinden.

Wel vind ik het jammer dat ze het zo hebben opgelost.

Het heeft even geduurd, maar we hebben een valide reden gevonden om het ASP.Net AJAX framework te implementeren in een project op het werk.
Eigenlijk was het al veel langer nodig, maar met de nodige work-arounds en eigen AJAX-methoden konden we toch nog zonder het standaard framework werken.
Ik had nu echter ook masked edit's nodig in m'n project en om die functionaliteit nou zelf te gaan maken gaat mij iets te ver als er al zoiets bestaat.
Gisteravond heb ik eerst gekeken of het framework een beetje eenvoudig kon worden geimplementeerd in het project. Nadat ik dit enkele malen had geprobeerd werd mij duidelijk dat dit een triviale kwestie was. Wat wel vervelend is, is dat ik geen 'upgrade' kon doen van m'n ASP.Net website naar een ASP.Net AJAX website, dus moest er een nieuw project worden aangemaakt.
Dit heb ik dus maar gedaan en alle bestanden van het oude project hier ingeladen. Uiteraard wel met dezelfde namespace, want anders zou ik alsnog problemen krijgen met referenties en dergelijke.

Na dit gedaan te hebben kon ik de standaard AJAX onderdelen gebruiken. Op zich leuk, maar hier zit geen masked edit control in. Deze moest nog apart worden geinstalleerd door middel van de Control Toolkit. Die voor .Net 3.5 was behoorlijk snel te vinden, maar ik moest die voor .Net 2.0 hebben. Deze was 2 muisklikken verder weg.
Deze snel even installeren en toen begon het puzzelen. Eigenwijs als ik ben dacht ik dit wel spelenderwijs te kunnen installeren. Dat bleek dus niet zo te zijn.
Na een tutorial filmpje op de asp.net website werd me al duidelijk wat er gedaan moest worden.
Een nieuwe tab maken in de Toolbox en daar de Control Toolkit DLL in plaatsen. Zodra dit is gedaan komen alle nieuwe controls zichtbaar in de toolbox. Enorm fijn.
Wanneer je deze wilt gebruiken moet je nog wel de Control Toolkit DLL in je references opnemen, want anders kent het project de code natuurlijk niet.
In m'n test-projectje ging dit allemaal behoorlijk goed, hier was ik wel blij om.

Vandaag op het werk hetzelfde kunstje maar geprobeerd. De masked edit in de presentatie-laag zetten was op zich geen groot probleem, maar hij moest eigenlijk in de zogenaamde interface-laag worden gecreeerd.
Al onze controls worden namelijk server-side aangemaakt, waardoor ik via de interface die controls aan moest gaan maken.
De masked edit is een extender van de normale textbox, daarom moet je eerst een textbox maken en daarna de masked edit.
Dit probeerde ik dus, maar dat lukte niet in 1x.
Je moet namelijk een TargetControlID opgeven, echter, dit attribuut was niet beschikbaar in het interface-project, wel in het presentatie-project.
Na even zoeken kwam ik er achter, samen met collega Rodi B, dat de AJAX controls ook nog de referentie System.Web.Extensions nodig hebben. Pas nadat die was toegevoegd kon ik alle attributen van de controls aanroepen.

Nu kunnen we in ons nieuwste project gebruik maken van alle AJAX controls. Eigenlijk is het al weer oud, maar voor mij nog nieuw, aangezien ik er nog nooit iets mee heb gedaan. Voor postcodes heb ik nu al een mooie mask gemaakt. Nu nog voor datum/tijd controls. Deze had ik al half af, maar er moet nog een masktype opgegeven worden, aangezien de -'jes en :'jes nu verdwijnen wanneer de focus van de textbox verdwijnt.
Op zich ook wel leuk om even uit te zoeken hoe dat werkt.