ASP.net : pagina compositie

  1. Inleiding
  2. Master Pages
  3. Themes
  4. Wizards

Inleiding

Op je website wens je wellicht dat je pagina's allemaal dezelfde 'look and feel' hebben: ze delen hetzelfde uiterlijk. Figuren worden gemeenschappelijk gebruikt, User Interface elementen, menu's en zoekformulieren komen telkens terug.

Je mogelijkheid is het werken met User Controls, en een referentie naar deze controls leggen op elke pagina. In grote projecten verzeil je met deze aanpak dikwijls in een chaotisch, moeilijk te onderhouden model.

ASP.net 2.0 beschikt over een aantal elementen die het voor de ontwikkelaar bijzonder aangenaam maken om consistente webpagina's te maken.

ASP.Net 2.0 element Beschrijving
Masterpages De mogelijkheid oom jouw pagina in te passen in een welbepaald sjabloon of template
Themes Met themes kan je op een eenvoudige manier de volledige site een consistente gebruikersinterface geven. Themes zijn gebouwd op CSS-technologie.
Wizards Een meerstapsprocedure waarbij de gebruiker op een eenvoudige en logische manier formulieren kan invullen

Masterpages

Een masterpage in ASP.Net is een apart bestand waar je naar kan verwijzen vanuit een gewone ASP.Net pagina. Op deze masterpage kan je regio's aanduiden waar een andere pagina inhoud kan plaatsen. Deze regio's worden gemarkeerd met de PlaceHolder control.

Een masterpage maken

Een masterpage wordt gekenmerkt door de @Master directive.

Een inhoudspagina maken

Meester.master
<%@ Master Language="C#" AutoEventWireup="true" CodeFile="Meester.master.cs" Inherits="Meester" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Welkom op deze site</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <div style="font-size: 2em; color: #cc6633; font-family: Rockwell">
            Werken met masterpages</div>
        <br />
        <br />
        <asp:contentplaceholder id="Inhoud" runat="server">
        standaardinhoud
        </asp:contentplaceholder>
    </div>
    </form>
</body>
</html>


Inhoudspagina.aspx
<%@ Page Language="C#" MasterPageFile="~/Meester.master" 
	AutoEventWireup="true" CodeFile="Inhoudspagina1.aspx.cs"
	Inherits="Inhoudspagina1" Title="Untitled Page" %>
<asp:Content ID="Content1" ContentPlaceHolderID="Inhoud" Runat="Server">
Inhoud vanuit de eerste inhoudpagina
</asp:Content>

Titel instellen

Standaard krijgt de pagina de titel zoals aangegeven door de tag title in de masterpage. Je kan vanuit de subpagina's de titel instellen met behulp van het attribuut Title in de @Page-directive.
<%@ Page Language="C#" MasterPageFile="~/Meester.master" AutoEventWireup="true" CodeFile="Inhoudspagina1.aspx.cs" Inherits="Inhoudspagina1" Title="hallo iedereen" %>

Masterpages nesten

Je kan een masterpage ook als inhoudspagina van een andere masterpage instellen. Deze child-masterpage bevat dan Content-controls voor de ContentPlaceHolder in de hooft-masterpage.

Binnen de Content-controls van de child-masterpage kan je dan weer ContentPlaceHolders plaatsen voor opvulling door gewone pagina's (of opnieuw een child-masterpage natuurlijk).

Met VS.Net 2005 kan je dit niet via de IDE-opties regelen, je kan voor een masterpage geen andere masterpage selecteren.
Oplossing: je maakt de child-masterpage als gewone Web Form en verandert de directive bovenaan van @Page in @Master en verwijdert het Title-attribuut. Verander nu ook de basisklasse in die van de masterpage.

Themes

Inleiding

Bij het maken van een webapplicatie ben je in eerste instantie bekommerd over de correcte werking, maar is het ook aangenaam dat je site er mooi uitziet.

Voor het opmaken van elementen op een pagina gebruik je wellicht reeds CSS-bestanden.

ASP.Net thema's kan je goed vergelijken met Windows XP thema's: je kan elementen heel eenvoudig een ander uiterlijk geven. Het instellen van een ASP.Net thema is even eenvoudig als het instellen van een eigenschap.

Om ASP.Net thema's te gebruiken heb je CSS-bestanden nodig, maar dit is niet voldoende.

Wat is een theme

Een theme is een set van skins en gerelateerde bestanden zoals Style Sheets en figuren: een soort van Super Style Sheet.
Term Definitie
Skin Een benoemde set van eigenschappen en templates die kan toegepast worden op een of meer controls op een pagina. Een skin wordt steeds geassocieerd met een controltype.
Style Sheet Een CSS of server-side style sheet bestand dat kan gebruikt worden door je pagina's
Stylesheet Theme Een theme dat gebruikt wordt om eigenschappen van controls op te maken. De control kan de theme nog overriden.
Custumization theme Een theme dat gebruikt wordt om eigenschappen van controls op te maken. Het theme overrides de control en elk stylesheet theme. De term theme zal in het vervolg van de cursus gebruikt wordt voor een Customization theme.

Structuur van een theme

Themes vormen een verzameling van verschillende bestanden en mappen onder een gemeenschappelijke root-directory:
%Windows%\Microsoft.NET\Framwork\[versie]\ASP.NETClientFiles\Themes
Lokale themes worden gemaakt in de App_Themes map van de huidige applicatie.

Volgende bestanden kunnen een theme uitmaken:

Bestand Beschrijving
CSS Style Sheet
Skin Theme-specifieke opmaak voor een bepaalde control
Figuren Figuren gebruikt in bepaalde themes, standaard geplaatst in een submap images onder de themamap
Templates Template-definities voor templatable controls (zoals bv. DataGrid)

Een theme maken

De bestanden voor een theme plaats je in een submap van de App_Theme map van je Web Site.

Themes dynamisch laden

We passen de pagina ThemeGebruiken.aspx aan zodat de gebruiker zelf kan kiezen welk theme wordt toegepast.

Wizards

Wat is een Wizard?

Een Wizard Component staat je toe om stap-voor-stap informatie aan de gebruiker te vragen. Een Wizard is conceptueel behoorlijk simpel, maar om dit te implementeren over het statusloze http-protocol kan behoorlijk lastig zijn.
Gelukkig is er nu sinds ASP.Net 2.0 de Wizard-control.

Een Wizard ondersteund lineaire en niet-lineaire nagigatie: het staat je toe terug te keren of stappen over te slaan die onnodig zijn in de huidige context. De Wizard control ondersteund themes, stijlen en templates.

De Wizard is een samengestelde control en maakt automatisch een aantal communicerende controls aan zoals navigatieknoppen en Panels. De control garandeert ook dat de state behouden blijft, al ga je vooruit of achteruit in de navigatie.

Structuur van een Wizard

Een Wizard bestaat uit vier delen: Header, View, Navigation bar en Sidebar.

Een Wizard aanmaken

Toon /verberg voorbeeldtoepassing

Meer tutorials:
leer ook: html | xhtml | css | asp | asp.net | c# | ado.net | linq | ajax | java | javascript
Valid HTML 4.01! Valid CSS! © - Cursusweb