Donnerstag, 22. November 2007

Span-Tag und dessen Breite

Verwendet man in HTML den span-Tag um eine Textpassage zu formatieren stösst man auf das Problem, dass dieser eine ihm per CSS zugewiesene Breitenangabe nicht annehmen möchte.

<span style="width:100px;">Testzeile</span>
Ändert man nun den Style in folgendes um, wird der Tag korrekt dargestellt.

<span style="width:100px;float:left;">Testzeile</span>

Mittwoch, 24. Oktober 2007

ASP:Button

Erstellt man in ASP.NET ein Button Webcontrol wird daraus nach der Interpretation durch den Compiler ein Input vom Typ="submit". Für gewöhnlich wird auf einem Formular aber nur ein Submit-Button benötigt. Die restlichen Buttons sollen normale Buttons sein. Um ASP.NET das beizubringen kann man das Attribut UseSubmitBehavior nutzen. Es erlaubt die Angabe true und false .

Gib man nun true an erscheint im endgültigen HTML-Markup ein Input vom Typ "submit" und im anderen Fall ein Input vom Typ "button".

Donnerstag, 26. Juli 2007

Neue logische Operatioren in VB.NET

Aus aktuellem Anlass berichte ich kurz über die zwei neuen logischen Operatoren welche in VB.NET eingeführt wurden.

In VB 6.0 existieren And und Or:
Der Nachteil der beiden Operatoren ist dass jeweils alle miteinander verknüpften Attribute miteinander verglichen werden.

In VB.NET wurden AndAlso und OrElse eingeführt:
Es gibt zwei Vorteile welche durch diese zwei neuen Operatoren entstanden sind.
  • Man kann verhindern dass z.B. das zweite Attribut überprüft wird falls dieses abhängig vom ersten Attribut ist und dadurch ein Fehler auftreten würde.
  • Es werden Ressourcen gespart da weitere Attribute nicht mehr überprüft werden müssen wenn das vorhergehende Attribut den Voraussetzungen des logischen Ausdrucks nicht entspricht.

Mittwoch, 2. Mai 2007

Validierung einer eMail Adresse

Um unter ASP.NET eine eMail Adresse zu validieren gibt es die einfache Möglichkeit dazu einen RegularExpressionValidator zu verwenden.

Unter Angabe des folgenden Parameters untersucht das Control das angegebene Control auf syntaktische Gültigkeit.
ValidationExpression=
"^[\w\.\-]+@([\w\-]+\.)*[\w\-]{2,63}\.[a-zA-Z]{2,4}$"

Freitag, 27. April 2007

Transparente Bitmaps im .NET Compact Framework

Da immer wieder das Problem auftritt das Beispielsweise PNG-Bilder trotz Transparenz im Compact Framework nicht transparent erscheinen gibt es folgende Lösung um das Problem zu lösen.

Dazu wird die Methode DrawImage mit folgender Überladung aus dem System.Graphics Namespace verwendet. Zu beachten ist das nicht alle Überladungen wie man sie aus dem normalen Framework kennt verfügbar sind.
Public Sub DrawImage(ByVal image As System.Drawing.Image, ByVal destRect As System.Drawing.Rectangle, ByVal srcX As Integer, ByVal srcY As Integer, ByVal srcWidth As Integer, ByVal srcHeight As Integer, ByVal srcUnit As System.Drawing.GraphicsUnit, ByVal imageAttr As System.Drawing.Imaging.ImageAttributes)
image
Das Bild welches gezeichnet werden soll.

desRect
Das Rectangle in welches das Bild gezeichnet werden soll. Dieses kann direkt per "new Rectangle(x, y, w, h)" im Methodenaufruf erstellt werden.

srcX, srcY, srcWidth, srcHeight
Der Bereich welcher einen Ausschnitt oder das gesamte Bild darstellt. Wenn man das ganze Bild darstellen möchte gibt man hier einfach die Daten des image-Objekts an.

srcUnit
Die Auswahl beschränkt sich sowieso nur auf "Pixel".

imageAttr
Darauf komme ich gleich zurück.

Damit wird zwar das Bild nun gezeichnet, allerdings noch nicht Transparent. Dazu muss man vorher ein Objekt vom Typ ImageAttributes instanzieren.
Dim imgAttr AS ImageAttributes

Anschliessend weist man der SetColorKey-Methode des imgAttr Objekts die Farbe zu welche transparent erscheinen soll. Man muss zwei Farben angeben, gibt aber einfach zweimal die selbe an. Beispiel mit rot.
imgAttr.SetColorKey(Color.red, Color.red)

Nun muss nur noch die DrawImage-Methode aufgerufen werden und um das imgAttr ergänzt werden und schon erhält man ein tranparentes Bild. Wichtig ist dass das Bild als Bitmap gespeichert ist und den Bereich welcher transparent erscheinen soll z.B. rot eingefärbt hat.

Freitag, 20. April 2007

Microsoft Visual Studio "Orcas" Beta 1 released

Microsoft hat nun die erste Betaversion des neuen IDE mit dem Codenamen "Orcas" veröffentlicht. Leider wird die neue Version von Visual Studio nicht wie angekündigt 2007 erscheinen sondern eher 2008. Besonders interessant dürfte die bessere Unterstützung für Web 2.0 und AJAX Anwendungen sein. Ebenso das neue LinQ welches mit dem .Net Framework 3.5 veröffentlich wird.

Weitere Informationen sowie die Downloads sind auf der Microsoft Webseite zu finden. Klick!

CSS-Konformität in aktuellen Browsern

Wer schonmal eine Webseite entwickelt und vor allem gestaltet hat kennt es: Manche Seitenteile sehen in verschiedenen Browsern unterschiedlich aus. Am deutlichsten fällt es bei der Verwendung von CSS (Cascading Style Sheets).

Aufgrund der Problematik wurde von WaSP (Web Standards Project) ein Test mit dem Namen Acid2 entwickelt welcher Renderingfehler der Browser aufdeckt in dem er ausgiebig die Prinzipien von HTML und die CSS-Fähigkeiten Testet.

Ergebnisse nach dem Besuch der Seite: Mozilla Firefox und Internet Explorer 7 sind nicht kompatibel zu den Spezifikationen der W3C. Browser wie Opera, Safari und Konqueror hingegen sind konform.

Link: Acid2

Donnerstag, 19. April 2007

Datatable sortieren

Eine DataTable lässt sich in VB.net recht simpel sortieren. Dabei wird die DefaultView der DataTable sortiert und anschliessend anstatt der DataTable an das Object (z.B. ein GridView) gebunden.

Dim dtTheData As System.Data.DataTable
Dim vwTheData As System.Data.DataView

vwTheData = dtTheData.DefaultView
vwTheData.Sort = "Column DESC"

Object.DataSource = vwTheData
Object.DataBind()

ASP Validators auf AJAX Updatepaneln

Scheinbar funktionieren nicht alle ASP Controls einwandfrei auf AJAX Updatepaneln. So zum Beispiel die Validators. Ich habe festgestellt das die Validators bei erstmaligem laden der Seite zwar funktionieren, aber nach dem ersten Update des Updatepanels den Dienst, in Form eines Javascripfehlers "classname undefined" verweigern.

Nach kurzer suche im Internet bin ich auf den Blog von Matt Gibbs gestossen welcher dazu eine Lösung parat hat. Dort gibt es ein Set von neuen Validatoren welche die neue API von AJAX verwenden und somit auch auf Updatepanels funktionieren.

Alles was man dazu tun muss ist die beiliegende *.dll in das Bin Verzeichnis der Webanwendung zu kopieren, die *.dll zu referenzieren und schlussendlich noch ein TagMapping in der web.config zu erstellen. Den Code dazu könnt ihr dem oben genannten Blog entnehmen.