Wer nach HTC und ASP.NET sucht, wird wahrscheinlich über den Treeview und die Webservice Behavior's stolpern. Aber um beides geht es hier nicht.
Mit modernen Browsern sind viele Dinge im Client (Browser) möglich, die Anwendungen attraktiver und einfacher machen. HTML Applications sind eine Möglichkeit dazu. Solche werden als HTA (HTML Application) oder HTC (HTML Component) Datei gespeichert. Dabei ist dies ein Standard des W3C und funtkioniert ab IE 5.
Konkrekt handelt es sich dabei um ein erweitertes Property von CSS. Dabei wird eine HTML Komponente erstellt, deren Quelle über behavior definiert wird. Das Behavior lebt in seiner eigenen Datei (HTC). Ähnlich wie bei einer HTA Anwendung handelt es sich dabei um eine Script Anwendung in VBScript oder meist JScript.
Als nächstes wird so eine Componente definiert. Dazu wird das ganze in ein PUBLIC:COMPONENT eingeschlossen. Dieses Element kann noch einige Attribute beinhalten. Dann folgt ein PUBLIC:DEFAULTS oder mehrere PUBLIC:ATTACH, PUBLIC:EVENT, PUBLIC:METHOD, PUBLIC:PROPERTY Elemente.
Mit Attach Event wird an ein Event eine Funktion gehängt. Diese wird dann auch innerhalb des Attach Elements geschrieben. Das ganze wird dann in einer Datei mit der Erweiterung HTC gespeichert.
<PUBLIC:COMPONENT> <ATTACH EVENT="onblur" HANDLER="LostFocus" /> <SCRIPT LANGUAGE="javascript"> function LostFocus() { alert( element.value ) } </SCRIPT> </PUBLIC:COMPONENT> |
Nun muss dieses "erst.htc" File seinen Weg in die HTML/ASPX Seite finden. Das passiert per CSS und einer Style Klasse. Hir wird diese MyFun genannt. Normalerweise werden in einer Style Klasse Dinge wie Font, Color oder Border festgelegt. Aber Styles lassen auch das zuweisen per "Verhalten" (behavior). Das funktioniert auch mit dem Assistenten von Visual Studio
Dabei ist nach behavior einzig der Wert url zulässig. Diese URL allerdings kann mit drei unterschiedlichen Parametern gefüttert werden.
Der Dateiname der HTC Dateit, der Objekt ID oder der Internet Explorer Standard Behaviors in der Form STYLE="behavior:url('#default#AnchorClick')" . (anchorClick, anim, clientCaps, download, homePage, httpFolder, mediaBar, saveFavorite, saveHistory, saveSnapshot, userData)
<style> .myFun { behavior: url( erst.htc ); } </style> |
In der HTML Seite wird die Style Klasse dann Elementen zugeordnet. Das kann eine HTML Input Box sein.
<INPUT TYPE="text" CLASS="myFun" ID="Box1"> |
Auch Eigenschaften lassen sich über PUBLIC:PROPERTY definieren und wie üblich mit GET und PUT lesen oder setzen
<PUBLIC:PROPERTY ID="pID" NAME="myname" PUT="set" GET="ret"/>
<SCRIPT LANGUAGE="JScript"> var myPar=null;
function set (vValue) { myPar = vValue; pID.fireChange(); }
function ret() { return myPar; } </SCRIPT> |
Mit HTC Componenten lassen sich Daten auch persistent am Client ablegen. Das nutzt z.B. das ASP.NET Treeview Control. Eine der interessantesten Einsatzgebiete sind die Webservice behaviors.
Anwendungen von HTC folgen hier in weiteren Artikeln.