 |
Publicité
|
L’exemple sera constitué de deux pages :
- Une pour le formulaire recevant les informations de l’utilisateur ;
- Une pour le pop-up.
Présentation des pages utilisées.
Le formulaire.
Il va comporter deux champs :
- un pour le prénom de l’utilisateur;
- un pour son nom.
Le formulaire sera envoyé par un «LinkButton» et validé par des «RequiredFieldValidator» associés à un «ValidationSummary».
<form id="form1" runat="server">
<asp:ValidationSummary
ID="ValidationSummary1"
runat="server"
/>
<div>
<asp:Label ID="Label2" runat="server"
Text="Prenom :
"></asp:Label>
<asp:TextBox ID="TextBoxPrenom"
runat="server"></asp:TextBox>
<asp:RequiredFieldValidator
ID="RequiredFieldValidatorPrenom"
runat="server"
ErrorMessage="Veuillez
indiquer votre prenom" ControlToValidate="TextBoxPrenom"> *</asp:RequiredFieldValidator>
<br />
<asp:Label ID="Label1" runat="server"
Text="Nom :
"></asp:Label>
<asp:TextBox ID="TextBoxNom"
runat="server"></asp:TextBox>
<asp:RequiredFieldValidator
ID="RequiredFieldValidatorNom"
runat="server"
ErrorMessage="Veuillez
indiquer votre nom." ControlToValidate="TextBoxNom"> *</asp:RequiredFieldValidator>
<br />
<asp:LinkButton ID="LinkButtonValider"
runat="server" onclientclick="ValideEtAffichePopup()">Valider</asp:LinkButton>
</div>
</form>
Le pop-up.
Il va comporter deux labels permettant d’afficher nos résultats :
- un pour le prénom de l’utilisateur;
- un pour son nom.
<form id="form1" runat="server">
<div>
<asp:Label ID="LabelPrenom" runat="server" Text="Label">Prenom récupéré dans le
formulaire : </asp:Label>
<asp:Label ID="LabelResultatPrenom"
runat="server"></asp:Label>
<br />
<asp:Label ID="LabelNom" runat="server" Text="Label">Nom récupéré dans le formulaire
: </asp:Label>
<asp:Label ID="LabelResultatNom"
runat="server"></asp:Label>
</div>
</form>
La technique utilisée.
Dans le formulaire.
Dans la page de formulaire je vais utiliser la fonction JavaScript suivante :
function
ValideEtAffichePopup()
{
if (typeof(Page_ClientValidate) == 'function')
{
validationResult
= Page_ClientValidate('');
}
if(validationResult)
{
var MonNom =
document.forms['form1'].TextBoxNom.value;
var MonPrenom = document.forms['form1'].TextBoxPrenom.value;
OpenPopUp('Popup.aspx?nom=' + MonNom + '&prenom=' + MonPrenom,'previsu',400,100,1);
}
}
Dans cette fonction j’utilise le principe utilisé dans la fonction «WebForm_DoPostBackWithOptions» qui fait parti des scripts liés aux pages asp.net lorsqu’on utilise les contrôles de validation du .NET.
Dans la fonction Page_ ClientValidate, les éléments du formulaire controlés par un contrôle de validation .NET sont inspectés. Si leurs critères de validation sont tous remplis, Page_ ClientValidate retourne «true» et «false» dans le cas contraire.
Il reste juste à vérifier la valeur de retour, si tout va bien, je récupère les valeurs du formulaire et je construit l’url vers mon popup.
Pour l’explication de la fonction OpenPopUp c’est ici : http://www.devparadise.com/technoweb/code/jscript/a353.php
Dans le pop-up.
Il suffit, dans le code behind, de récupérer les deux valeurs passées dans l’url et de les assigner aux labels :
protected void Page_Load ( object
sender, EventArgs e )
{
this.LabelResultatNom.Text
= Request.QueryString["nom"];
this.LabelResultatPrenom.Text
= Request.QueryString["prenom"];
}
Voilà, contrat remplit.
|