Eindelijk AJAX in een project
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.