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 :

[vb.net] Declarer un array de session ?


Sujet :

ASP.NET

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    121
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 121
    Points : 56
    Points
    56
    Par défaut [vb.net] Declarer un array de session ?
    bonjour ,

    je souhaiterais declarer un array de Textbox mais je voudrais que ces variable soit visible partout donc je pensais les declarer en session . est ce possible ?

    merci d'avance
    "One should never increase, beyond what is necessary,
    the number of entities required to explain anything."

  2. #2
    Membre éprouvé Avatar de guitoux1
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 011
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 011
    Points : 1 256
    Points
    1 256
    Par défaut
    tu peux mettre ce que tu veux dans une variable de session, cependant y mettre un tableau de TextBox, je vois pas l'intéret !! pourquoi ne pas juste y mettre les valeurs à afficher dans les textbox ??

    Remarque : mieux vaut mettre le moins de chose possible en session, c'est plutot gourmand en mémoire

  3. #3
    Membre actif Avatar de quanou
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    311
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 311
    Points : 247
    Points
    247
    Par défaut
    Citation Envoyé par dyree
    bonjour ,

    je souhaiterais declarer un array de Textbox mais je voudrais que ces variable soit visible partout donc je pensais les declarer en session . est ce possible ?

    merci d'avance
    Tu peux mettre un arraylist (composé de ce que tu veux en terme de type de données) dans la session.
    Mais c'est quoi un array de Textbox ?
    Nous tenir au courant lorsqu'on fait l'effort de vous répondre...

  4. #4
    Membre actif Avatar de quanou
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    311
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 311
    Points : 247
    Points
    247
    Par défaut
    trop rapide le Guitoux1
    Nous tenir au courant lorsqu'on fait l'effort de vous répondre...

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    121
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 121
    Points : 56
    Points
    56
    Par défaut
    merci pour vos reponse

    ce que j'ai pour le moment , c'est :

    dim champ_info(30) as textbox
    For i=1 To 30

    champ_info(i)= new textbox
    champ_info(i).text = ""
    next i

    l'idée ce que je souhaiterai que apres que l'utilisateur ai rentré des valeurs dans les textbox, je puisse men resservir dans une autre fonction.

    d'ou le besoin de session non ?
    car la porté de champ_info(i) est restreinte par la boucle non ?
    "One should never increase, beyond what is necessary,
    the number of entities required to explain anything."

  6. #6
    Membre éprouvé Avatar de guitoux1
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 011
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 011
    Points : 1 256
    Points
    1 256
    Par défaut
    Si l'autrre fonction est sur la même page, il te suffit de déclarer champ_info au niveau de la page (et pas au niveau de la boucle).
    Si ta fonction est dans une autre page, ben tu redéclare champ_info. Vu que tu connais la taille de ton tableau (30) et la valeur a mettre dans les textbox (""), ben pourquoi mettre en session ça alors que tu peux le refaire ailleurs ?? pas de données dynamique, que du dur.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    121
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 121
    Points : 56
    Points
    56
    Par défaut
    ok je via essayer ca.

    il ne faut pas preter attention a la valeur "", je l'avais juste mis la au debut pour initialiser car je croyais avoir un probleme. je ne connais pas par avance ni le contenue ni la taille mais je peux la majorer ( par 30 )
    "One should never increase, beyond what is necessary,
    the number of entities required to explain anything."

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    121
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 121
    Points : 56
    Points
    56
    Par défaut
    ok jai donc une page comme ceci


    dim champ_info(30) as textbox
    .
    .
    .
    Function x
    for i = 1 to 30
    champ_info(i) = new textbox
    c.Controls.Add(champ_info(i))
    next i
    end function
    .
    .
    Function y
    for i = 1 to 30
    response.write(champ_info(i).text)
    next i
    end function


    or je devrai declarer chacun des textbox(i) comme un textbox, et si je fai ca je perd leur valeur, pourtant jai bien declare textbox(30) en haut . Qqun pourrait il m'aider pliz ?
    "One should never increase, beyond what is necessary,
    the number of entities required to explain anything."

  9. #9
    Membre éprouvé Avatar de guitoux1
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 011
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 011
    Points : 1 256
    Points
    1 256
    Par défaut
    function X est appelé au premier chargement de ta page (page_load) et et function Y lors d'un PostBack, c'est ça ??

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    121
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 121
    Points : 56
    Points
    56
    Par défaut
    function X est appelé lors d'un appuie sur un bouton A
    function X fait apparaitre un formulaire de textbox
    une fois que le user a rempli, il clique sur le bouton update qui appelle la fonction
    Y
    "One should never increase, beyond what is necessary,
    the number of entities required to explain anything."

  11. #11
    Membre éprouvé Avatar de guitoux1
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 011
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 011
    Points : 1 256
    Points
    1 256
    Par défaut
    Dans ce cas, ta fonction Y devrait plus ressembler à ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    foreach(Control oC in this.Controls)
    {
       TextBox txtb = oC as TextBox;
       if (txtb != null)
       {
          string value = txtb.Text;
       }
    }
    Ca c'est le cas ou tu n'as pas d'autres textbox sur ta pages que celles générées automatiquement. Sinon, il te faut faire un test pour savoir su la textbox txtb est une des textbox de ton tableau..

    PS : pour transformer ce code en VB.Net si tu lis pas le C# : Convertisseur

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    121
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 121
    Points : 56
    Points
    56
    Par défaut
    je vais essayer
    pour info , le convertisseur ne fonctionne pas , en tout cas pas lorsque l'on fait un copier coller, il semble quil prenne des balises caché en meme temps.

    je suis quand meme un peu triste qu'on soit obliger de faire quelquechose de ce style alors que je voudrais juste que mes varaible soit visible partout sur ma page -.-
    "One should never increase, beyond what is necessary,
    the number of entities required to explain anything."

  13. #13
    Membre éprouvé Avatar de guitoux1
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 011
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 011
    Points : 1 256
    Points
    1 256
    Par défaut
    mais c'est le cas !! Tes variables sont visibles partout dans la page. Mais là tu fais un amalgame avec le fait ques les pages ASPX soient StateLess. C'est à dire que tes variables sur ta pages ne maintiennent pas leur valeur entre chaque postback. Mais leur portée est la même.

  14. #14
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    121
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 121
    Points : 56
    Points
    56
    Par défaut
    ok
    merci , je vai reflechir au moyen le plus logique.
    le probleme dans ton foreach, c'est que les textbox sont ajoutés a
    c.Controls.Add(champ_info(i)) et C est un tablecell ( je crée un tableau puis jinsere dedans des textbox ) mais de la meme maniere, lors de l'appuie du bouton ce dernier ne garde pas sa valeur, et je ne peux pas utiliser une boucle du type

    dim test as textbox
    for each test in c.controls

    puisqu' il ne voit pas c

    breeeef je tourne un peu en rond
    "One should never increase, beyond what is necessary,
    the number of entities required to explain anything."

  15. #15
    Membre éprouvé Avatar de guitoux1
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 011
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 011
    Points : 1 256
    Points
    1 256
    Par défaut
    Et pourquoi tu n'utilise pas un control Repeater pour y mettre tes TexBox ? comme ça, les valeurs seront gardées d'un postback à l'autre ??

  16. #16
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    121
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 121
    Points : 56
    Points
    56
    Par défaut
    je vias essayer par la.
    mais n'aurais je pas le meme probleme ?
    je vais creer un repeater sur ma page

    le remplir dynamiquement par la function X par des textbox
    recuperer les valeurs des textbox par la fonction y
    "One should never increase, beyond what is necessary,
    the number of entities required to explain anything."

  17. #17
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    121
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 121
    Points : 56
    Points
    56
    Par défaut
    je voudrai ajouter directement a un arraylist qui constituerai la source de mon repeater les labels et des textbox
    j'ai pour le moment fait cela

    Dim values As New ArrayList()

    For i=1 To ds.tables("datestest").Columns.Count-1

    values.Add(New textbox())

    next i

    Repeater1.DataSource = values
    Repeater1.DataBind()

    mais comment faire pour les labels, sachant que je veu pouvoir leur rentrer une valeur ?
    "One should never increase, beyond what is necessary,
    the number of entities required to explain anything."

  18. #18
    Membre éprouvé Avatar de guitoux1
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 011
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 011
    Points : 1 256
    Points
    1 256
    Par défaut
    tu pars pas comme il faut.
    Tu doit cr&éer un repeater et y mettre dans le itemtemplate un label et un textbox.

    Ensuite, tu créer ta collection contenant le text du label et la valeur du textbox (je te conseil de passer par une collection d'objets). Puis tu bind cette liste à ton repeater.

    Exemple :

    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
    public class MonObjet
    {
       public string Label; // passe par des propriétés plutot, là c juste pour te donner une idée
       public string Valeur;
    }
     
    ArrayList monArray = new ArrayList();
    for(inti=0 ; i<30 ; i++)
    {
       monObjet obj = new MonObjet();
       monObjet.Valeur = "valeur_textbox";
       monObjet.Label = "valeurLabel";
       monArray.Add(monObjet);
    }
     
    Repeater1.DataSrouce = monArray;
    Repeater1.DataBind();
    N'oubli pas de spécifié dans ton repeater (coté aspx) ce que tu veut afficher dans le label et dans la textbox

  19. #19
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    121
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 121
    Points : 56
    Points
    56
    Par défaut
    tres bien , jai crée ma class, je lui ai fiat contenir un label et un textbox

    public class MonObjet

    public champ_gauche as label
    public champ_droite as textbox

    end class

    dans ma fonction

    dim monArray as new ArrayList()

    for i=1 to ds.tables("datestest").Columns.Count-1

    dim obj as new monObjet
    obj.champ_gauche.text=ds.tables("datestest").Columns(i).ColumnName
    obj.champ_droite.text = ""
    monArray.Add(obj)

    next i

    Repeater1.DataSource = monArray
    Repeater1.DataBind()

    mais je dois encore avoir un probleme de porté car obj.champ_gauche.text ne peut prendre une valeur, et j'obtiens le message d'erreur suivant

    Object reference not set to an instance of an object
    "One should never increase, beyond what is necessary,
    the number of entities required to explain anything."

  20. #20
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    121
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 121
    Points : 56
    Points
    56
    Par défaut
    mea culpa , je repars sur ton exemple en rajoutant le label et le textbox dans la partie aspx
    "One should never increase, beyond what is necessary,
    the number of entities required to explain anything."

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 1
    Dernier message: 21/03/2007, 20h44
  2. [VB.net] Declaration en globale
    Par Seth77 dans le forum Windows Forms
    Réponses: 5
    Dernier message: 13/02/2007, 11h34
  3. [VB.net] Declaration variable dans une boucle for
    Par nico10gbb dans le forum Windows Forms
    Réponses: 4
    Dernier message: 10/05/2006, 11h45
  4. [C++.NET] Declarer un objet datatable
    Par raboin dans le forum VC++ .NET
    Réponses: 5
    Dernier message: 24/04/2006, 17h17
  5. [VB.NET] Declaration problématique dans une classe
    Par joefou dans le forum VB.NET
    Réponses: 8
    Dernier message: 01/03/2006, 11h38

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