Vous êtes sur la page 1sur 10

M11 : Développement web côté Serveur

Résumé de cours

I. Contrôles de validation
Les contrôles de validation ASP.NET valident les données saisies par l'utilisateur
pour garantir que les données inutiles, non authentifiées ou contradictoires ne soient
pas stockées.

ASP.NET fournit les contrôles de validation suivants :

• RequiredFieldValidator
• RangeValidator
• CompareValidator
• RegularExpressionValidator
• CustomValidator
• ValidationSummary

• Contrôle RequiredFieldValidator

Le contrôle RequiredFieldValidator garantit que le champ requis n'est pas vide. Il


est généralement lié à une zone de texte pour forcer la saisie dans la zone de texte.
ControlToValidate =Nom du contrôle à valider.
ErrorMessage=Message à afficher.

• Contrôle RangeValidator

Le contrôle RangeValidator vérifie que la valeur d'entrée se situe dans une plage
prédéterminée. Il possède des propriétés spécifiques :
ControlToValidate= Nom du contrôle à valider.
ErrorMessage= Message à afficher.
MaximumValue= Il spécifie la valeur minimale de la plage.
MinimumValue= Il spécifie la valeur maximale de la plage.
Type= Il définit le type de données. Les valeurs disponibles sont : devise, date…

Page 1 sur 10 ISTA KHEMISSET


• Contrôle CompareValidator

Le contrôle CompareValidator compare une valeur dans un contrôle avec une valeur
fixe ou une valeur dans un autre contrôle. Il possède les propriétés spécifiques
suivantes :

ControlToValidate= Nom du contrôle à valider.


ControlToCompare = Nom du contrôle comparer.
ValueToCompare = Il spécifie la valeur constante à comparer
Type= Il définit le type de données. Les valeurs disponibles sont : devise, date…
Operator : Il spécifie l'opérateur de comparaison, les valeurs disponibles sont :
Equal, NotEqual …

• Contrôle RegularExpressionValidator

Le contrôle RegularExpressionValidator permet de valider le texte en entrée en le


comparant à un modèle d'une expression régulière. L'expression régulière est
définie dans la propriété ValidationExpression.

ControlToValidate= Nom du contrôle à valider


ErrorMessage= Message à afficher
ValidationExpression= Format de validation (e-mail ….)

• ValidationSummary

Le contrôle ValidationSummary n'effectue aucune validation mais affiche un


récapitulatif de toutes les erreurs de la page. La récapitulative affiche les
valeurs de la propriété ErrorMessage de tous les contrôles de validation ayant
échoué à la validation.

Les deux propriétés suivantes, mutuellement incluses, répertorient le message


d’erreur :

ShowSummary : affiche les messages d'erreur au format spécifié.

ShowMessageBox : affiche les messages d'erreur dans une fenêtre séparée.

Page 2 sur 10 ISTA KHEMISSET


• CustomValidator

L'utilisateur définit lui-même une fonction pour effectuer la validation lorsque les
contrôles standards ne peuvent pas assumer ce rôle.

Dans ce cas, les propriétés sont un peu différentes :

Dans le cas d'une validation côté client :

• La propriété ClientValidationFunction contient le nom de la fonction


• La fonction doit être sous la forme : Function ValidationPersonnelle
(source, arguments)
• la source est l'objet CustomValidator côté client
• arguments est un objet comportant deux propriétés : Value et IsValid
• La propriété Value est la valeur à valider
• La propriété IsValid est un booléen retournant le résultat de la validation
La validation côté client s'effectue avec du code javascript soit entre les balises ad
hoc, soit dans un fichier ".js" séparé.
Ce genre de code est bien connu des développeurs javascript :

<script language="javascript">

function Validation (obj, args)


{

</script>

Dans le cas d'une validation côté serveur : Placez le code de validation dans
l'événement OnServerValidate

Page 3 sur 10 ISTA KHEMISSET


II. Connexion à une Base de Données SQL Server avec C#
LANCER SQL SERVER ET CREER LA STRUCTURE RELATIONNELLE SUIVANTE :

Nom BD : GestCmd

LANCER VS ET CREER L’INTERFACE SUIVANTE :

public SqlConnection cn = new SqlConnection("integrated security=true;initial


catalog=Gestcmd");

public SqlCommand cmd;

public SqlDataReader dr;

Code de l’ interface:
protected void BtnNew_Click(object sender, EventArgs e)
{
this.TxtCode.Text = "";
this.TxtNom.Text = "";
this.TxtAdresse.Text = "";
this.TxtCode.Focus();
}

Page 4 sur 10 ISTA KHEMISSET


protected void BtnSave_Click(object sender, EventArgs e)
{

cn.Open();
cmd = new SqlCommand("Insert into client values('" +
this.TxtCode.Text + "','" + this.TxtNom.Text + "','" + this.TxtAdresse.Text +
"')", cn);
cmd.ExecuteNonQuery();
cn.Close();
this.BtnNew_Click(sender, e);

protected void BtnFind_Click(object sender, EventArgs e)


{
cn.Open();
cmd = new SqlCommand("select * from client where codeclt='" +
this.TxtCode.Text + "'", cn);
dr = cmd.ExecuteReader();

if (dr.HasRows == false)
{
this.Label1.Text = "Waloooooooooooooooooo";
}
else
{
this.Label1.Text = "";

while (dr.Read())
{
this.TxtCode.Text = dr[0].ToString;
this.TxtNom.Text = dr[1].ToString;
this.TxtAdresse.Text = dr[2].ToString;
}

}
}

Interface commande

Page 5 sur 10 ISTA KHEMISSET


protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
cn.Open();
cmd = new SqlCommand("select * from client", v.cn);
dr = cmd.ExecuteReader();
while (dr.Read())
{
this.CmbCode.Items.Add(dr[0].ToString;);
}
cn.Close();
}
}

Page 6 sur 10 ISTA KHEMISSET


III. Crystal Reports

protected void Button1_Click(object sender, EventArgs e)


{
if (this.RadioButtonList1.SelectedIndex == 0)
{
CrystalReport1 crp= new CrystalReport1();
CrystalReportViewer1.ReportSource = f;

}
else
{
CrystalReport1 crp= new CrystalReport1();
f.SetParameterValue("Code",this.TextBox1.Text);
CrystalReportViewer1.ReportSource = f;

}
}

Page 7 sur 10 ISTA KHEMISSET


IV. ASP NET & XML

using System.IO;
using System.Data.SqlClient;

DataSet ds = new DataSet();

protected void BtnImporter_Click(object sender, EventArgs e)


{
FileStream fs = new
FileStream(Server.MapPath("//aq.xml"),FileMode.Open,FileAccess.Read);
StreamReader rs = new StreamReader(fs);
ds.ReadXml(rs);
DataTable tb = new DataTable();
tb=ds.Tables["client"];
this.GridView1.DataSource = tb;
this.GridView1.DataBind();

protected void BtnExporter_Click(object sender, EventArgs e)


{
GlobalVar v = new GlobalVar();
SqlDataAdapter da = new SqlDataAdapter();

// ds.Clear();
da= new SqlDataAdapter("select * from client", v.cn);
da.Fill(ds, "client");
ds.WriteXml(Server.MapPath("//aq.xml"));
this.Label1.Text = "OKKKKKKKKKKKKKKKKKK";

Page 8 sur 10 ISTA KHEMISSET


V. Web.Config
Qu'est-ce que le Web.Config ?
Ce fichier permet de définir pour une application ASP.NET ou pour un répertoire
particulier de celle-ci. Il comprend divers paramètres comme le type de compilation,
le type d'authentification, la manière de garder la valeur des variables de sessions,
... Il est également possible d'y placer des valeurs qui sont ainsi modifiables sans
recompilation de l'application. Un Web.config bien configuré permet, tout comme le
Global.asax, de simplifier la mise en œuvre de l'application ainsi que d'améliorer les
performances.

Où doit se trouver le Web.Config ?


Il est possible de placer un fichier Web.Config par répertoire. La portée du
Web.Config est ainsi ce répertoire et tous ses sous-répertoires sauf si un autre
fichier Web.Config se trouve dans un de ses sous-répertoires. Dans ce cas, le
Web.Config correspondant sera pris en compte.

Comment changer le timeout d'une application web ?


Pour changer le timeout d'une application web, dans le fichier web.config :
<configuration>
<system.web>
<customErrors mode="Off"/>
<compilation debug="true"/>
<httpRuntime maxRequestLength="8096" executionTimeout="600"/>
</system.web>
</configuration>

Si vous voulez modifier le timeout d'une seule page, au début de la page aspx :
<%
Server.ScriptTimeout=200;
%>

Comment autoriser l'affichage des exceptions dans une application web ?

La réponse se trouve dans le Web.Config au sein du tag customErrors. Ce tag a


diverses propriétés dont, entre autres, le Mode. Celui-ci peut valoir
- On: les erreurs personnalisées sont activées. Si la valeur de la propriété
defaultRedirect n'est pas redéfinie, les utilisateurs reçoivent une erreur générique
- Off: les erreurs détaillées sont affichées

Page 9 sur 10 ISTA KHEMISSET


- RemoteOnly: spécifie que les erreurs personnalisées ne sont affichées qu'aux
utilisateurs distants. Les erreurs ASP.NET sont affichées sur le localhost. Il s'agit
de la valeur par défaut.

Où et comment définir la ConnectionString ?

Il existe plusieurs réponses possibles à cette question :

1° dans le code, à chaque fois que l'on crèe un objet XXXConnection


2° dans le code, dans une variable statique dans chaque page
3° dans le code, dans une variable statique et publique dans une des pages
4° dans le Global.asax
5° dans le Web.Config
6° un mix des deux dernières solutions

De 1 à 3, ce sont des solutions à proscrire car toutes modifications sur la base (changement de
serveur, changement du mot de passe ou du login ou encore du type de sécurité mise en place)
nécessite une recompilation de toute l'application.

Pour le point 4, la solution est très intéressante car il est possible de définir une variable statique
comme ci-dessous :

static public string ConnectionString = "la chaine de connexion";

L'appel dans le code se fait alors par :

string cs = Global.ConnectionString;

Cependant toute modification du fichier nécessite un redémarrage de l'application (effectué


implicitement).

Le point 5, avec l'utilisation des attributs <appSetting> est très interressant puisqu'il est possible de
modifier la valeur à chaud, sans redémarrage de l'application.

Pour lire la valeur :

System.Configuration.ConfigurationManager.AppSettings["clé"];

A chaque appel, il y a un accès au fichier Web.Config. + !! Problème de string !

En utilisant les avantages de l'un et de l'autre, on arrive à la situation suivante : On ne lit qu'une
fois le Web.Config et on garde la valeur en mémoire, à l'aide d'une variable au sein de la classe
Global.

Page 10 sur 10 ISTA KHEMISSET

Vous aimerez peut-être aussi