Vous êtes sur la page 1sur 18

Base asp

switch case:
int n=0;
switch(n)
{
case 1:
response.Write("code 1");
break;
default:
Response.Write("Erreur");
break;
} %>
declare une variable: <% string
chaine="message" %>
afficher <% = chaine %>

Code bihind:

<%

<html>
<script runat="server">
void Page_Load()
{ span1.InnerHtml = "message a
afficher"; }
</script>
<head>
</head>....
ou default.aspx.cs
protected void page_load (Object Sender ,
EventArgs e)
{
span1.InnerHtml="message ???"
}

Les fonctions et les procdures:

Appel:

<script runat="server">
void proc (int a, int b)
{
Response.Write(a*b);
}
void multi (int a, int b)
{
return a*b;
}
</script>

procdure: page load dans le mme script

Les vnements d'une page:

PostBack : gnre un appel au serveur


IsPostBack :proprit boolenne de la page

page_init=aprs le chargement de la
page
page_Load=au moment de
chargement
page_Inload=au moment de
fermeture d'une page

,
la balise < script> se dclare avant
<HTML>
void page_load()
{
proc(5, 6);
}
fonction:
span1.InnerHtml = multi(7, 8).ToString();

(read-only) qui permet justement d'effectuer


ce genre de test
AutoPostBack : proprit des contrles qui
active le dclenchement d'un aller-retour sur
le serveur (prend la valeur true ou false)

NB :
string req = "select login, passe from membre where membre.login='" + txt_login.Text + "'";

prenons cette requte qui cherche le login et le passe where le login gale textbox
si la requte ne retourne rien la boucle while(dr.read()) ne sexcute pas , et si on
fait un traitement lintrieur de la boucle il ne se trait pas

IsPostBack: cest lvnement

if (IsPostBack)TextBox1.Text = "aller et retour";

daller et retour dune requte Client


Serveur

else TextBox1.Text = "pas encore aller";

La variable Viewstate =rserve la


donne entre requte, les donnes de
Viewstate sont changer toujours
entre Client et serveur.
Exemple :

Appeler une procdure stock a partir


web form
Rtn_stg cest le nom de la proc stock
Dfinir le type de commande
instancier le nom et la valeur de paramtre
ajouter le paramtre au sql cmd

if (ViewState ["cnt"] != null)


{
countclick = int.Parse (ViewState ["cnt"].ToStr()
}
ViewState ["cnt"]=countclick+1;
TextBox1.Text = ViewState ["count"].ToString ();
}

SqlCommand cmd = new SqlCommand("rtn_stg",


cnx);
cmd.CommandType =
CommandType.StoredProcedure;
SqlParameter par = new SqlParameter("@num", 2);
cmd.Parameters.Add(par);
SqlDataReader dr = cmd.ExecuteReader();

Le principe de fonctionnement d'ASP.NET dans l'environnement DotNet


avec le serveur IIS.

1. vous tapez une url dans votre navigateur et donc, envoyez une requte pour
une page aspx d'un client web vers le serveur IIS
2. la requte est analyse et le traitement est transfr au runtime, un
processus est cr pour excuter l'application
a. S'il s'agit de la premire excution du code de cette page, le
compilateur JIT (Just In Time) compile le code en binaire natif et le
stocke en mmoire.
b. Si ce n'est pas la premire excution, le code binaire est charg
depuis le cache.
3. ce code binaire est excut puis renvoy vers le serveur IIS
4. IIS renvoie la rponse sous la forme de code HTML strict vers l'utilisateur. Ce
code HTML est affich dans votre navigateur.

La balise FORM
Les formulaires sont dlimits par la balise <FORM> ... </FORM>, une balise
qui permet de regrouper plusieurs lments de formulaire (boutons, champs de
saisie,...) et qui possde les attributs obligatoires suivants :

1. METHOD indique sous quelle forme seront envoyes les donnes :


a. POST est la valeur qui correspond un envoi de donnes stockes
dans le corps de la requte, tandis que
b. GET correspond un envoi des donnes codes dans l'URL.
2. ACTION indique l'adresse d'envoi
<FORM METHOD="POST"/"GET" ACTION="mailto:webmaster@gmail.net" >
...
</FORM>

QueryString
QueryString permet de faire passer des informations via l'URI d'une page
une autre.
Pour rediriger le navigateur vers une page web
Response.Redirect("2.aspx?id1=" + txt1.Text +"&id2=" + txt2.Text);

Pour rcuprer la valeur du paramtre envoy


Label1.Text = Request.QueryString ["id1"];

Request.QueryString ["id"] ;= utiliser avec la mthode GET

VIEWSTATE
Int count = 0;
If (ViewState ["count"] == null) count = 1;
Else
Count = (int) ViewState ["count"] + 1;
ViewState ["count"] = count;
lbl1.Text = count.ToString ();

Les Variables Session


Exemple de cration dune session :
Bouton Connexion :
if ((txt_login.Text == dr[0].ToString()) && (txt_passe.Text == dr[1].ToString()))
{
Session["login"] = txt_login.Text;
Session["passe"] = txt_passe.Text;
Response.Redirect("Profile.aspx");
}

Au chargement de la page Profile :


protected void Page_Load(object sender, EventArgs e)
{
if (Session["login"] != null)
{
Response.Write ("Bienvenu Ms " + Session ["login"].ToString()) ;
}
else
{
Response.Redirect ("Acceuil.aspx") ;
}
}

Bouton Dconnexion :
protected void Button1_Click(object sender, EventArgs e)
{
Session. Abandon () ;
Response.Redirect ("Acceuil.aspx") ;
}

Les Cookies
Les cookies permettent aux applications Web de stocker des informations
spcifiques l'utilisateur. Par exemple, lorsqu'un utilisateur visite votre site, les
cookies peuvent vous servir stocker ses prfrences, ou d'autres informations.
Lorsque cet utilisateur revient visiter votre site Web, l'application peut rcuprer
les informations stockes prcdemment.
Exemple de Cration de cookie / de Lecture de cookie/ Supprimer un cookie

Les contrles de source de donnes


Les contrles de source de donnes sont des contrles ASP.NET qui grent
les tches de connexion une source de donnes et de lecture et d'criture de
donnes.
Contrle de
source de
donnes

Description

ObjectDataSource Permet d'utiliser un objet mtier ou une autre classe et de


crer des applications Web qui s'appuient sur des objets de
couche intermdiaire pour grer des donnes.
SqlDataSource

Permet d'utiliser les fournisseurs de donnes manags


ADO.NET, lesquels offrent un accs aux bases de donnes
Microsoft SQL Server, ou Oracle

AccessDataSourc Permet d'utiliser une base de donnes Microsoft Access.


e
XmlDataSource

Permet d'utiliser un fichier XML, ce qui est trs utile pour les
contrles serveur ASP.NET hirarchiques (les contrles
TreeView ou Menu).

LinqDataSource

Permet d'utiliser LINQ (Language-Integrated Query) dans une


page Web ASP.NET afin de rcuprer et de modifier des
donnes d'un objet de donnes

Page Globale
La classe Global est la classe capable de grer des vnements du niveau
application, Elle se trouve dans un fichier appel Global.asax
Le Global.asax est optionnel mais il peut faciliter le dveloppement ainsi que la
maintenance dapplications

Master Page
La MasterPage (extension *.master) contiendra la source HTML du design et des
zones ddition (contentPlaceHolder), permettant ainsi de crer plusieurs
pages (contentPage) du mme design

Pour appliquer une MasterPage sur une nouvelle page, il faut dabord
enlever toute la source HTML qui vous ne sera pas utile, laisser
uniquement len-tte <@ Page >
Rajouter ensuite au niveau du tag <@Page > le paramtre MasterPageFile
avec lURL de la MasterPage

PAGE ACCEUIL:
<%@ Page Title="" Language="C#" MasterPageFile="~/Site1.Master"
AutoEventWireup="true" CodeBehind="acceuil.aspx.cs" Inherits="Master_Page.acceuil" %>
<ASP: Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder2"
runat="server">
ACCEUIL
</ASP : Content>
PAGE MASTER :

En ajout ContentPlaceHolder dans laquelle les autres pages placer leurs


codes

<ASP: ContentPlaceHolder ID="ContentPlaceHolder2" runat="server">


Ici le code HTML & ASP
</ASP : ContentPlaceHolder>

2 faon de crer un site avec master page :


1- Crer la page master en premier puis crer les pages web avec page
master dj existe.
2- Crer les pages web puis crer la page master et modifier leur contenu

1ere Mthode :
1- Crer une page web, puis un master page
2- Ajouter un entte pour master page et modifier la forme, puis ajoute une
ContentPlaceHolder qui va se contenir les lments des autres pages.
3- webForm : supprimer tous le contenu sauf Lentte, puis ajout dans
lentte le nom de la master page exp : MasterPageFile="~/Site1.Master"
4- Ajout un Content avec un id, et ContentPlaceHolderID qui gale le nom de
la 2 ContentPlaceHolder, exp :
<ASP: Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder2"
runat="server">
Le contenu de la page web
</ASP : Content>

2eme Mthode :

1-Crer une master page au premier ,puis rgler la forme , et ajouter une zone
ContentPlaceHolder qui va se contenir les lments des autres pages.
2-maintenent en ajout une page web avec master page existe, on slectionne
la page master et en fait les mmes tape de la 1ere mthode

VALDATION :
Les principaux contrles de validation sont :

RequiredFieldValidator
Nom de la
Utilisation
proprit
ControlToValidate doit contenir le nom du contrle valider
message afficher en cas d'erreur dans le contrle
ErrorMessage
ValidationSummary
contient une valeur qui invalide le contrle si celui-ci est gal cette
InitialValue
valeur prcise
Text
texte affich en cas de non validation
SetFocusOnError Placer le curseur en cas derreur True/False

RangeValidator
Nom de la
proprit

Utilisation

ControlToValidate doit contenir le nom du contrle valider


ErrorMessage

message afficher en cas d'erreur dans le contrle


ValidationSummary

MinimumValue

valeur minimale de la plage de donnes

MaximumValue

valeur maximale de la plage de donnes

Text

texte affich en cas de non validation

CompareValidator

Comparaison
un type

Comparaison
une valeur

Comparaison
un autre champ

RegularExpressionValidator
Ce contrle valide un champ suivant une expression rgulire

Exemple :
\w+\@\w+\.\w+
\a\-\d{2}\-\d{2}

Valider un Email
a-22-22

['0']-22-22

\['0']\-\d{2}\-\d{2}

CustomValidator
L'utilisateur dfinit lui-mme une fonction pour effectuer la validation lorsque les
contrles standards ne peuvent pas assumer ce rle

Dans le cas d'une validation ct client :

La proprit ClientValidationFunction contient le nom de la fonction


La fonction doit tre sous la forme : Function ValidationPersonnelle (source,
arguments)
La source est l'objet CustomValidator ct client
Les arguments est un objet comportant deux proprits : Value (valeur
valider) et IsValid (boolen retournant le rsultat de la validation)

Nom de la proprit
Utilisation
ControlToValidate
doit contenir le nom du contrle valider
ClientValidationFunctio
doit contenir le nom de la fonction JavaScript
n

Dans le cas d'une validation ct Serveur :


Placez le code de validation dans l'vnement OnServerValidate

ValidationSummary
Il sert afficher sous diffrentes formes le rsultat de tous les contrles de
validation sur la page ASPX si une erreur est survenue

Il interroge les diffrents contrles non valides et rcupre la valeur de leur


proprit ErrorMessage (il faut rajouter Display="None" dans les contrles
de validation)
Le nom du groupe doit tre assign dans chacun des contrles de validation,
dans le ValidationSummary correspondant ainsi quau bouton denvoi (de
validation)

Nom de la proprit Utilisation


DisplayMode
ValidationGroupe

La faon pour afficher les erreurs :


BulletList/List
Le nom de groupe a affich les erreurs

Les bottons de navigation


Load :
if (!IsPostBack)
{

i = 0;
string req = "select * from stagiaire";
adapt = new SqlDataAdapter(req, macnx);
ds = new DataSet();
adapt.Fill(ds, "stg");
T1.Text = ds.Tables["stg"].Rows[i][0].ToS;
T2.Text = ds.Tables["stg"].Rows[i][1].ToS;

Premier

|< :

i = 0;
string req = "select * from stagiaire";
adapt = new SqlDataAdapter(req, macnx);
ds = new DataSet();
adapt.Fill(ds, "stg");
T1.Text = ds.Tables["stg"].Rows[i][0].ToS;
T2.Text = ds.Tables["stg"].Rows[i][1].ToS;

Application["id"] = i;

Application["id"] = i;
}

Prcdent

<:

Suivent

>:

string req = "select * from stagiaire";


adapt = new SqlDataAdapter(req, macnx);
ds = new DataSet();
adapt.Fill(ds, "stg");

string req = "select * from stagiaire";


adapt = new SqlDataAdapter(req, macnx);
ds = new DataSet();
adapt.Fill(ds, "stg");

i = (int)Application["id"];

i = (int)Application["id"];

if (i > 0)
{
i = i - 1;
T1.Text = ds.Tables["stg"].Rows[i][0].ToS;
T2.Text = ds.Tables["stg"].Rows[i][1].ToS;

if (i< ds.Tables["stg"].Rows.Count-1)
{
i = i + 1;
T1.Text = ds.Tables["stg"].Rows[i][0].ToS;
T2.Text = ds.Tables["stg"].Rows[i][1].ToS;

Application["id"] = i;

Application["id"] = i;

Crer une Web Service


1-ajouter une web service
2-ajouter une fonction dans le web service
3-appeler la fonction depuis la page consommations par Exp :

NameSpace.NomClasse obj = new NameSpace.NomClasse() ;


Obj.NomFonction();

Exp
[WebMethod]
public DataTable afficherStg(int id)
{
string req = "select * from stg where id=" +id;
adapt = new SqlDataAdapter(req, macnx);
ds = new DataSet();
adapt.Fill(ds, "stg");
return ds.Tables["stg"];
}

DropDownList1_SelectedIndexChanged
{
GridView1.DataSource =
web.afficherStg(int.Parse(DropDownList1.Select
edValue));
GridView1.DataBind();
}

Xml Gridview

Xml DropdownList

Le mme code en ajout


Dropdownlist.DataTextField= "nom_stagiaire" ;
DropDownlist.DataValueFiled="id_stagiaire" ;

XML :
(EXtensible Markup Language) langage de balisage pour la description de
documents structurs
Un document XML qui respecte les rgles syntaxiques est dit bien form
(utilisable sans DTD) = valide
Spcifications du langage XML :
Un document doit commencer par une dclaration XML
Toutes les balises avec un contenu doivent tre fermes
Toutes les balises sans contenu doivent se terminer par les caractres
/>
Le document doit contenir un et un seul lment racine
Les balises ne doivent pas se chevaucher
Les valeurs dattributs doivent tre entre guillemets
La casse doit tre respecte pour toutes les occurrences de noms de
balise
En XML les commentaires se notent : < ! -- texte du commentaire -->
Pas de commentaire dans un lment (exemple incorrect)

Le nom dun Elment :

1er caractre {alphabtique, -, _},


Les autres caractres {alphabtique, chiffre, -, _, :}.
Pas de blanc,
XML au dbut est interdit (maj. /min.).
La balise de fermeture est obligatoire

Le contenu d'un lment peut tre

Vide (<toc></toc> ou <toc/>),


Du texte (sauf < et &) bas sur l'encodage,
Un ou plusieurs lments complets (<toc> ... </toc>)
Les blancs comptent : <a> X </a> est diffrent de <a>X</a>
Il faut viter les caractres <, >, &, ", ' dans le contenu dun lment
Ils sont remplacer par les lments prdfinis suivants : &amp ; donne

& | &lt; donne < | &gt; donne > | &quot; donne " |
donne '

&apos;

Avec les sections littrales, il est possible de stopper l'interprtation des


caractres spciaux :

<! [CDATA[ texte non soumis l'analyse ]]>


<Texte>
<![CDATA[en HTML, la balise <p> est trs utile !]]> Et a toute son

Espace de noms :

Un espace de noms est un


ensemble dlments identifiables de
manire unique, Lintrt tant
dviter la confusion en cas de
combinaison de donnes de plusieurs
sources de donnes.
Un espace de noms par
dfaut associe un URI un
lment et tous ses
lments enfants
<lment xmlns="uri"></
lment >

Un espace de noms explicite


associe un prfixe un URI,
Ce prfixe peut tre ensuite
utilis pour marquer des
lments donns comme
appartenant cet espace de
nom

Exemple fichier XML :

DTD :
Pour crer un document XML valide, il faut quil soit accompagn par son lot de
validation : DTD
Les DTD (Document Type Dfinition) sont trs simples manipuler, et on en
trouve deux types :
Internes : incorpores au document XML
Externes : cres dans un fichier part, et qui comptent encore deux autres
types :
Prives : accessibles uniquement en local (sur la machine de
dveloppement)
Publiques : disponibles pour tout le monde (grce un URI)
Les DTD externes sont spcifies l'aide d'une dclaration DOCTYPE
contenant une URI qui identifie l'emplacement de la DTD

Dfinir un fichier DTD interne :


< !DOCTYPE personne [
/* code DTD

]>

Appel dun fichier DTD externe


< ! DOCTYPE personne SYSTEM
chemin.dtd>

Dclarations d'lments
Contenu d'un lment
#PCDATA
Souslments
Squences

Choix :
Contenu
mixte
Elment
vide

ANY

Exemple :
Cette dclaration indique qu'un lment dfinition peut contenir des
donnes textuelles analyses et des sous-lments Nota. Elle ne spcifie ni
dans quel ordre ils apparaissent, ni le nombre de chaque instance. Cette
dclaration autorise une dfinition avoir un, aucun ou plusieurs souslments Nota, ou zone de texte.

Nombre de sous-lments
? : autorise zro ou un + : autorise un ou

plusieurs lments.

lment.

(0, 1)

(1, )

* : autorise zro ou
plusieurs lments.
(0, )

Dclaration d'attribut

Une simple instruction ATTLIST peut dclarer diffrents attributs d'une mme
balise.

Cette dclaration indique que les attributs source, largeur, hauteur sont
obligatoires. Cependant, l'attribut alternative est optionnel et peut tre omis par
certains lments image. Ces quatre attributs sont dclars contenir des donnes
textuelles, le type d'attribut le plus gnrique.

#REQUIR
ED
#IMPLIE
D
#FIXED

L'attribut est obligatoire. Chaque instance de l'lment doit


proposer une valeur pour l'attribut. Aucune valeur par dfaut n'est
fournie.
L'attribut est optionnel. Chaque instance de l'lment peut, ou
pas, proposer une valeur pour l'attribut. Aucune valeur par dfaut
n'est fournie.
La valeur de l'attribut est fixe et non modifiable. Cet attribut a une
valeur spcifie, que l'attribut soit ou ne soit pas explicitement
not sur l'instance particulire d'un lment.

Valeurs par dfaut


<!ELEMENT elt (...)>
<!ATTLIST elt attr CDATA "valeur">

Type chane de caractres


<!ELEMENT elt (...)>
<!ATTLIST elt attr CDATA #IMPLIED>

ID :

Ce type indique que la valeur d'un attribut doit tre unique dans un
document. Aucun attribut ID ne peut donc prendre une valeur dj affecte un
autre attribut ID.

Xsd :
Structure de base
<?xml version="1.0" ?>
<xsd:schema >
<!-- dclarations d'lments, d'attributs et de types ici -->

</xsd:schema>
Un lment, dans un schma, se dclare avec la balise <xsd:element>
<?xml version="1.0" ?>
<xsd:schema >
<xsd:element name="remarque" type="xsd:string"/>
<xsd:element name="contacts" type="typeContacts"/>--type
complexe
<!-- dclarations de types ici -->
</xsd:schema>
Ce schma dclare deux lments : remarque et contacts
-Les types :
<xs:element name="lastname" type="xs:string"/>
<xs:element name="Age" type="xs:integer"/>
<xs:element name="date Born" type="xs:date"/>

Valeur par dfaut et valeur fixe :


Une valeur par dfaut est assigne si aucune autre valeur nest affecte
<xs:element name="color" type="xs:string" default="red"/>
Une valeur fixe est aussi assigne mais peut tre change
<xs:element name="color" type="xs:string" fixed="red"/>

Tous les attributs sont optionnels par dfaut, on peut cependant les expliciter :
<xs:attribute name="lang" type="xs:string" use="optional"/>
On peut les rendre obligatoires
<xs:attribute name="lang" type="xs:string" use="required"/>
<!-- Pour declarer un nouveau type -->
<xsd:simpletype name="type1">
<xsd:restrection base="xsd:string">
<xsd:maxlength value="30" />
</xsd:restrection>
</xsd:simpletype>