Een object is een op zichzelf staande eenheid. Het houdt gegevens(data) vast en laat ons die gegevens door code die we schrijven manipuleren op een eenvoudige welgedefiniëerde manier. De beschrijving van een object leg je vast in een klasse (class definition). Om acties te ondernemen met gegevens van het object definiëren we in de klasse methoden.
De theorie hieromtrent leerde je reeds in de cursus C#.
In de namespace System.Drawing ziten bijvoorbeeld klassen die ons in staat stellen grafische objecten zoals cirkels en rechthoeken te tekenen. We kunnen deze basisklassen in onze eigen projecten invoegen.
De code is nu typevast (variabelen moeten strikt getypeerd worden) en wordt dus gecompileerd.
Doordat ASP.NET pagina's werken met een extensie .aspx kan je op dezelfde server klassieke ASP en nieuwe ASP.NET pagina's gebruiken.
ASP.NET is een technologie waarin met verschillende talen kan worden gewerkt, bovenaan de pagina kan je met een Page-directive aangeven met welke taal je wilt werken :
<%@ Page language="c#" %>
<script language="c#" runat="server"> …C# declaraties … </script>
<%@ Page Language="C#" %>
<script runat="server">
private void Page_Load(object sender, System.EventArgs e) {
Bericht.Text = "Welkom in de cursus ASP.net";
}
</script>
<html>
<head>
</head>
<body>
<form runat="server">
<asp:Label id="Bericht" runat="server">Label</asp:Label>
</form>
</body>
</html>
Opmerking: wanneer je werkt met Visual Studio.net, hou dan in het achterhoofd dat dit programma standaard werkt met een andere techniek voor het plaatsen van ASP.net code: codebehind. Deze techniek komt spoedig aan de orde. Wens je echter deze voorbeelden te maken met VS.net, dan moet de waarde van het attribuut AutoEventWireUp op true(standaard) ingesteld zijn. Anders zal de Page_Load routine niet worden uitgevoerd.
Verplaats het script-blok:
<%@ Page Language="C#" %>
<html>
<head>
</head>
<body>
<form runat="server">
<asp:Label id="Bericht" runat="server">Label</asp:Label>
</form>
</body>
</html>
<script runat="server">
private void Page_Load(object sender, System.EventArgs e) {
Bericht.Text = "Welkom in de cursus ASP.net";
}
</script>
<%@ Page Language="C#" %>
<html>
<head>
</head>
<body>
Een HTML-lijn <br/>
<% Response.Write("Een ASP.net-lijn<br/>"); %>
Een tweede HTML-lijn<br/>
<% Response.Write("Een tweede ASP.net-lijn<br/>"); %>
Een derde HTML-lijn
</body>
</html>
Dit voorbeeld demonstreert het werken met Codebehind. De programmalogica staat in een apart bestand (voor VB is dat een .vb - bestand, voor C# een .cs-bestand). De @Page directive in het aspx-bestand bevat een inherits-attribuut, waarbij wordt aangeduid dat we wensen te erven van de MijnCodeBehind-klasse. De klasse kan gevonden worden in het bestand mijncodebehind.cs zoals aangeduid in het CodeFile-attribuut. Belangrijk hierbij is dat je op deze manier slechts van één klasse kan overerven.
De eerste drie regels importeren een aantal belangrijke namespaces uit het .NET Framework. In een webpagina (aspx) worden die namespaces reeds geïmporteerd, echter niet in een .cs-file. Hierna maken we een klasse MijnCodeBehind, deze klasse erft van de Page-klasse uit de System.Web.UI namespace. De namespace werd reeds geïmporteerd, dus de naam van de klasse Page volstaat hier. De naam van de klasse (MijnCodeBehind) stemt natuurlijk overeen met de naam opgegeven in het inherits-attribuut van de @Page-directive in het aspx-bestand.
Dan zorgen we ervoor dat de controls die we wensen te gebruiken in het aspx-bestand gekend zijn in de klasse MijnCodeBehind door ze publiek te declareren.
Daarna volgt de code voor de Page_Load methode.
<%@Page Inherits="MijnCodeBehind" src="MijnCodeBehind.cs" %>
<html>
<head>
</head>
<body>
<form runat="server">
<asp:label id="bericht" runat="server" />
</form>
</body>
</html>
using System;
using System.Web.UI;
using System.Web.UI.WebControls;
public class MijnCodeBehind : Page
{
public Label bericht ;
public void Page_Load(Object Sender , EventArgs E){
bericht.Text = "Hallo ASP.net gebruiker";
}
}
Visual Studio 2005 gebruikt hier partial classes, waardoor de WebForm (aspx) en de codebehind (aspx.cs) als het ware één klasse vormen.
Daardoor moeten de controls op de pagina (zoals het Label) niet meer gedeclareerd worden.
| Meer tutorials: |
| leer ook: | html | | xhtml | | css | | asp | | asp.net | | c# | | ado.net | | linq | | ajax | | java | | javascript |