Galileo Computing < openbook > Galileo Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

 <<   zurück
JavaScript und AJAX von Christian Wenz
Das umfassende Handbuch
Buch: JavaScript und AJAX

JavaScript und AJAX
839 S., mit DVD, 39,90 Euro
Galileo Computing
ISBN 3-89842-859-1
gp Kapitel 26 JavaScript goes .NET
  gp 26.1 Erste Schritte
  gp 26.2 HTML Controls
  gp 26.3 Web Controls
  gp 26.4 Validation Controls
  gp 26.5 Fazit


Galileo Computing

26.3 Web Controls  toptop

Wie Sie sehen konnten, kann eine bestehende HTML-Seite relativ schnell für ASP.NET umgestellt werden: Alle Elemente, die serverseitig modifiziert werden sollen, müssen mit runat="server" versehen werden.

Die Firma Microsoft versucht jedoch schon seit Jahren – und das ziemlich erfolglos – die Entwicklung von Windows-Anwendungen der Entwicklung von Web-Anwendungen anzugleichen. Die Idee lautet: Wenn die Anwendungen ähnlich erstellt werden können, wird aus einem guten Windows-Entwickler sofort ein fähiger Web-Entwickler. Über diese Folgerung kann man streiten, dennoch gibt es immer wieder Ansätze von Microsoft-Entwicklungsumgebungen, die sowohl für Standalone-Programme als auch für Webseiten verwendet werden können.

Der vorerst letzte Höhepunkt dieser Bestrebungen ist bei ASP.NET realisiert worden und in Visual Studio besonders offensichtlich zu beobachten: Microsoft hat eigene Tags eingeführt, die so genannten Web Controls. Diese beginnen immer mit <asp: und ähneln vom Namen her Windows-Elementen. Hier ein Beispiel: Bei der Windows-Programmierung (mit Visual Studio, aber auch mit Konkurrenzprodukten) steht ein Label-Element immer für einen Text. Nun gibt es bei ASP.NET »zufällig« das Web Control <asp:Label>. Auch hier ist wieder runat="server" Pflicht, und auch hier erfolgt der Zugriff wieder über das id-Attribut. Der einzige Unterschied zu den zuvor gezeigten HTML Controls ist eine andere Eigenschaft für den Text; hier heißt sie Text. Folgendes Beispiel illustriert das:

<%@ Page Language="JScript" %>
<script runat="server">
function Page_Load() {
   Ausgabe.Text = "Web Controls sind recht praktisch";
}
</script>

<html>
<head>
   <title>ASP.NET</title>
</head>
<body>
<asp:Label id="Ausgabe" runat="server" />
</body>
</html>

Tags für Web Controls müssen immer abgeschlossen werden, entweder wie gezeigt mit .../> oder mit dem zugehörigen End-Tag. Das wäre hier </asp:Label> gewesen.

Abbildung
Hier klicken, um das Bild zu Vergrößern

Abbildung 26.4     Die Ausgabe – wie erwartet

Der Text wird ausgegeben, womit Sie sicherlich gerechnet haben; der HTML-Quellcode im Browser sorgt jedoch für eine kleine Überraschung:

<html>
<head>
   <title>ASP.NET</title>
</head>
<body>
<span id="Ausgabe">Web Controls sind recht praktisch</span>
</body>
</html>

Das Web Control wurde also in ein entsprechendes HTML-Element umgewandelt, und zwar in <span>!

Das Beispiel von oben mit dem Mini-Formular lässt sich recht schnell umschreiben. Die Tücken stecken hier im Detail: Die Control-Namen sind neu, und das gilt auch für die Namen der Eigenschaften, über die der Zugriff auf die Formulardaten erfolgt. Deswegen sehen Sie hier ohne weiteren Kommentar den entsprechenden Code:

<%@ Page Language="JScript" %>
<script runat="server">
function Ausgabe(o: Object, e: EventArgs) {
   var s: String;
   s  = "Name: " + Name.Text + "<br />";
   s += "E-Mail: " + Email.Text + "<br />";
   s += "Buch: " + Buch.SelectedItem.Value;
   Absatz.Text = s;
}
</script>

<html>
<head>
   <title>ASP.NET</title>
</head>
<body>
<form runat="server">
Name: <asp:TextBox id="Name" runat="server" /><br />
E-Mail: <asp:TextBox id="Email" runat="server" /><br />
Buch: <asp:DropDownList id="Buch" runat="server">
   <asp:ListItem Value="JS7" Text="JavaScript-Handbuch, 7. Auflage" />
   <asp:ListItem Value="AS" Text="Einstieg in ActionScript" />
   <asp:ListItem Value="WS" Text="Web Services – Grundlagen" />
   <asp:ListItem Value="WSPHP" Text="Web Services mit PHP" />
</asp:DropDownList>
<asp:Button Text="Versenden" OnClick="Ausgabe" runat="server" />
</form>
<asp:Label id="Absatz" runat="server" />
</body>
</html>

Aber Web Controls sind nicht nur ein Pendant zu HTML Controls, sie gehen auch weiter. Ein besonders aussagekräftiges Beispiel hierfür ist das folgende dreizeilige Listing:

<form runat="server">
   <asp:Calendar runat="server" />
</form>

Die Browserausgabe sehen Sie in Abbildung 26.5.

Abbildung
Hier klicken, um das Bild zu Vergrößern

Abbildung 26.5     Das Calendar-Web-Control im August 2006

Es wird also ein Kalender erzeugt, der sich automatisch im richtigen Monat befindet (es ist auch möglich, den aktuellen Tag zu markieren). Die drei Zeilen ASP.NET-»Code« haben zu etwa 30 Zeilen HTML-Code geführt, der aus über 6500 Zeichen besteht. Damit ist klar, dass Web Controls nicht nur ein Ersatz für HTML Controls sein sollen, sondern eine Erweiterung sind.

 <<   zurück
  
  Zum Katalog
Zum Katalog: JavaScript und AJAX
JavaScript und AJAX
bestellen
 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchtipps
Zum Katalog: JavaScript und AJAX - Das Video-Training






 JavaScript und AJAX -
 Das Video-Training


Zum Katalog: Webseiten programmieren und gestalten






 Webseiten
 programmieren
 und gestalten


Zum Katalog: XHTML, HTML und CSS






 XHTML, HTML und CSS


Zum Katalog: CSS-Praxis






 CSS-Praxis


Zum Katalog: AJAX






 AJAX


Zum Katalog: PHP 5 und MySQL 5






 PHP 5 und MySQL 5


Zum Katalog: TYPO3 4.0






 TYPO3 4.0


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo




Copyright © Galileo Press 2007
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


[Galileo Computing]

Galileo Press, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de