IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

formulaire dans un fichier ascx vb.net


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Stephane_br
    Inscrit en
    Septembre 2005
    Messages
    222
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 222
    Par défaut formulaire dans un fichier ascx vb.net
    Bonjour,

    Je débute en ASP.NET et j'ai un petit souci tout simple mais je tourne en rond sans comprendre comment cela fonctionne ...

    J'ais une page .aspx avec à l'intérieur, un usercontrol, c'est à dire un appel à une page .ascx et cette dernière contient un formulaire avec un webcontrol.

    Lorsque l'on clique sur le bouton "ENVOYER", le formulaire me renvoit sur une page résultat.aspx qui doit récupérer les valeurs de plusieurs webcontrols saisies/choisies par l'internaute (un textbox, une case à cocher multiple et une liste déroulante) depuis le UserControl. Or je n'y arrive pas. Je n'ai pas de message d'erreur, simplement, le fait de valider mon formulaire me renvoi sur la page d'accueil de mon site sans m'afficher de message d'erreur et je ne peux pas récupérer les velurs saisies.

    Voilà ma page Liste_articles.aspx :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <%@ Page Title="" Language="VB" MasterPageFile="~/MasterPage.master" AutoEventWireup="false" CodeFile="vente-articles-gamme.aspx.vb" 
    
    Inherits="Liste_articles" %>
    
    <%@ Register TagPrefix="bandeauDroite" TagName="SomeText" Src="_BlocDroiteSite.ascx" %> 
    
    
    <asp:Content ID="Content2" ContentPlaceHolderID="ContenuPage" Runat="Server">
    <bandeauDroite:SomeText ID="BlocBandeauDroite" runat="server" NbProduits="" MontantPanier="" />
    
    
    ....
    ..
    .
    Le code dans ma page _BlocDroiteSite.ascx :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    <%@ Control Language="VB" AutoEventWireup="false" CodeFile="_BlocDroiteSite.ascx.vb" Inherits="_BlocDroiteSite" %>
    <asp:Panel ID="BlocRightRecherche" runat="server" CssClass="BlocRightBrown1a" DefaultButton="ButtonBLocRecherche">
    ...
    ..
    
    <asp:Panel ID="PanelRechValue" runat="server" style="padding-top:6px;">
        <asp:TextBox ID="TextBoxRechValue" runat="server" CssClass="Boxes02" TextMode="SingleLine" ValidationGroup="BlocRecherche"
                         Text="" ToolTip="Entrez ici un nom de produit ou une référence de produit" style="width:150px; margin-top:0px;" />
    </asp:Panel>
    
    ...
    ..
    
    <asp:Button ID="ButtonBLocRecherche" runat="server" Text="> Lancer la recherche"
            ToolTip="Lancer la recherche" PostBackUrl="Resultat.aspx"
            ValidationGroup="BlocRecherche" CssClass="Buttons01" Style="width:130px;" />
    
    ...
    ..
    .
    </asp:Panel>

    Le code dans ma page Resultat.aspx (et c'est là que cela me pose souci) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        
         If Not IsPostBack Then
    
            'On arrive d'une autre page pour la recherche
                LabelPourLesTests.Text = "Valeur récupérée du formulaire de la page précédente:" & CType
    
    (Page.PreviousPage.Master.FindControl("TextBoxRechValue"), TextBox).Text
    
    
         End If
    End Sub
    j'ai l'impression qu'il ne voit pas mon contrôle [B]TextBoxRechValue[B] ??!

    Merci par avance pour votre aide.

  2. #2
    Membre confirmé
    Profil pro
    Développeur Web
    Inscrit en
    Septembre 2007
    Messages
    173
    Détails du profil
    Informations personnelles :
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2007
    Messages : 173
    Par défaut
    ton control TextBoxRechValue se trouve dans ton usercontrol et non dans ta masterpage.

    un truc comme suit serait peut etre mieux (j'ai pas testé)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (Page.PreviousPage.BlocBandeauDroite.FindControl("TextBoxRechValue"), TextBox).Text
    Si ça ne fonctionne pas comme ça, passe par une propriete eventuellement dans la MasterPage.

  3. #3
    Membre éclairé Avatar de Stephane_br
    Inscrit en
    Septembre 2005
    Messages
    222
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 222
    Par défaut
    Merci pour ta réponse nasimpat7.
    Cependant, cela ne fonctionne toujours pas de mon côté.
    J'ai essayé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CType(Parent.Page.PreviousPage.BlocBandeauDroite.FindControl("TextBoxRechValue"), TextBox).Text
    et ça met l'erreur suivante :
    'BlocBandeauDroite' n'est pas un membre de 'System.Web.UI.Page'.
    Du coup, tu m'as aiguillé et j'ai essayé un truc comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CType(Page.PreviousPage.FindControl("BlocBandeauDroite").FindControl("TextBoxRechValue"), TextBox).Text
    J'ai tjrs mon problème, mais je commence à croire que j'ai dû faire une erreur ailleurs dans ma page peut être .... c'est bizarre, je n'ai pas d'erreurs de script mais cela me renvois sur la page d'accueil ??

    Ce qu'il y a, c'est que je ne comprend pas encore bien comment fonctionne les formulaires en ASP.NET et comment récupérer les données en POST alors du coup je doute de mon code et je n'arrive pas à trouver l'erreur .... arf !

  4. #4
    Membre confirmé
    Profil pro
    Développeur Web
    Inscrit en
    Septembre 2007
    Messages
    173
    Détails du profil
    Informations personnelles :
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2007
    Messages : 173
    Par défaut
    Sinon passe par une propriété qui serait dans ta masterpage.
    Tu set celle-ci à partir de ton usercontrol et tu la récupère sur ta page de résultat via la masterpage.

    Il faut par contre que ta masterpage soit typer (directive MasterType).

  5. #5
    Membre éclairé Avatar de Stephane_br
    Inscrit en
    Septembre 2005
    Messages
    222
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 222
    Par défaut
    Pour comprendre, j'ai essayé de monter une page vierge contenant mon usercontrol ascx contenant lui-même mon formulaire, et dans ma page resultat, le code suivant fonctionne bien :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CType(Page.PreviousPage.FindControl("BlocBandeauDroite").FindControl("TextBoxRechValue"), TextBox).Text
    Par contre, dès que j'ajoute la liaison à la masterpage dans ma page, ça ne marche plus. Il y a donc un souci dans ma masterpage ou bien dans le code permettant de récupérer les valeur du formulaire de la page ascx.

    Pourtant, dans ma masterpage, je n'ai que la procédure Page_Load avec 2 lignes de codes dedans (affectation de valeurs à des labels).

  6. #6
    Membre confirmé
    Profil pro
    Développeur Web
    Inscrit en
    Septembre 2007
    Messages
    173
    Détails du profil
    Informations personnelles :
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2007
    Messages : 173
    Par défaut
    Essaye dans ton usercontrole de faire un FindControl de ta MasterPage.
    N'oublie pas de typer ta MasterPage (directive MasterType sur toutes tes pages utilisant ta Masterpage).

Discussions similaires

  1. Mettre les données d'un formulaire dans un fichier texte
    Par superjordan dans le forum Langage
    Réponses: 1
    Dernier message: 30/03/2008, 16h35
  2. Récupérer donnée d'un formulaire dans un fichier
    Par koyote63 dans le forum Langage
    Réponses: 10
    Dernier message: 02/02/2008, 19h41
  3. Réponses: 7
    Dernier message: 08/07/2007, 23h00
  4. [Conception] Ecrire le contenu d'un formulaire dans un fichier
    Par omeada dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 27
    Dernier message: 26/04/2007, 16h35
  5. Plusieurs formulaires dans un fichier avec plusieurs méthodes post
    Par cyberdevelopment dans le forum Langage
    Réponses: 2
    Dernier message: 17/08/2006, 15h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo