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 :

Rapport entre TextBox et Calendar


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier Avatar de nimois3O
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    183
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Mai 2007
    Messages : 183
    Points : 70
    Points
    70
    Par défaut Rapport entre TextBox et Calendar
    Bonjour,

    Mon apli est constituer d'une TextBox ou quand on rentre un chiffre et que l'on valide, ça affiche autant de TextBox que le nombre renter...

    ...elle est aussi constituer d'un calendar.

    Ceq ue j'aimerais faire c'est que quand l'utilisateur selectionne une semaine sur le calendar alors les TextBox ce remette a leur forme Text initiale c'est a dire "Heure n°1"...

    Voila le code que j'utilise pour affiche mes TextBox :

    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    protected void nbheureTextBox_TextChanged(object sender, EventArgs e)
            {
                Debug.WriteLine( "TextBox1_TextChanged ######" );
                this.RemoveTextBox( m_kIColTxBx );
     
                try
                {
                    int iNbtxtBx;
                    if ( Int32.TryParse( ( (TextBox)( sender ) ).Text, out iNbtxtBx ) )
                    {
                        m_kIColTxBx.Clear();
                        for ( int i = 0; i < iNbtxtBx; ++i )
                        {
                            TextBox kTxBx = new TextBox();
                            kTxBx.ID = "TextBox_" + i.ToString();
                            kTxBx.Text = "Heure n° " + i.ToString();
                            kTxBx.Height = 30;
                            kTxBx.Width = 500;
                            kTxBx.Visible = true;
                            kTxBx.Enabled = true;
                            kTxBx.AutoPostBack = true;
     
                            m_kIColTxBx.Add( kTxBx );
     
                        }
                        AddTextBox( m_kIColTxBx );
                    }
     
                }
                catch ( Exception exc )
                {
                    Debug.WriteLine( "ERROR : " + exc );
                }
            }
     
            protected void TextBoxPhrase_TextChanged(object sender, EventArgs e)
            {
                Debug.WriteLine(" ###### TextBoxPhrase_TextChanged");
     
                this.RemoveTextBox(m_kIColTxBx);
                TextBox kTxBx = ((TextBox)(sender));
                int iStart = m_kIColTxBx.IndexOf(kTxBx);
                for (int i = iStart; i < m_kIColTxBx.Count; ++i)
                {
                    m_kIColTxBx[i].Text = kTxBx.Text;
                }
                AddTextBox(m_kIColTxBx);
            }
     
            protected void AddTextBox(IList<TextBox> TextBoxList)
            {
                IEnumerator kEnumerator = TextBoxList.GetEnumerator();
                TextBox kTxBx;
                while (kEnumerator.MoveNext())
                {
                    kTxBx = ((TextBox)(kEnumerator.Current));
                    kTxBx.TextChanged += new EventHandler(this.TextBoxPhrase_TextChanged);
                    this.form1.Controls.Add(kTxBx);
                }
            }
     
            protected void RemoveTextBox(IList<TextBox> TextBoxList)
            {
                IEnumerator kEnumerator = TextBoxList.GetEnumerator();
                while (kEnumerator.MoveNext())
                {
                    this.form1.Controls.Remove(((TextBox)(kEnumerator.Current)));
                }
            }
    Les puristes aurons remarqué qu'il y a aussi une fonction qui permet d'écrire dans les TextBox suivant la 1ére le méme text que le text entré dans celle-ci...(merci chubyone)

    Est-ce possible a faire ? et si oui par "quoi" faut-il passer ?

    Merci
    "Ne faites pas à autrui ce que vous pouvez faire le jour même."

    [Francis Blanche]



  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    700
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 700
    Points : 780
    Points
    780
    Par défaut
    Tu détectes le changement de date coté server, puis tu rerempli tes TextBox avec le bon text (tu reprends la collec) : donc tu as besoin de créer une méthode d'initialisation des TextBox (plutot que le garder dans le textchanged)

    du genre

    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
     
    protected void InitializeTextBox( int Count )
    {
                        m_kIColTxBx.Clear();
                        for ( int i = 0; i < Count; ++i )
                        {
                            TextBox kTxBx = new TextBox();
                            kTxBx.ID = "TextBox_" + i.ToString();
                            kTxBx.Text = "Heure n° " + i.ToString();
                            kTxBx.Height = 30;
                            kTxBx.Width = 500;
                            kTxBx.Visible = true;
                            kTxBx.Enabled = true;
                            kTxBx.AutoPostBack = true;
     
                            m_kIColTxBx.Add( kTxBx );
     
                        }
                        AddTextBox( m_kIColTxBx );
     
    }
    que appelles dans le TextChanged:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    protected void nbheureTextBox_TextChanged(object sender, EventArgs e)
            {
                Debug.WriteLine( "TextBox1_TextChanged ######" );
                this.RemoveTextBox( m_kIColTxBx );
      int iNbtxtBx;
                    if ( Int32.TryParse( ( (TextBox)( sender ) ).Text, out iNbtxtBx ) )
                    {
    this.InitializeTextBox(iNbtxtBx);
    }
    }
    ainsi que dans le changement de date (attention le fait davoir change le nb dans le textbox influence linit)
    (C'est du coder a l'arrache rien testé)

  3. #3
    Rédacteur
    Avatar de JauB
    Homme Profil pro
    Freelancer
    Inscrit en
    Octobre 2005
    Messages
    1 792
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Maroc

    Informations professionnelles :
    Activité : Freelancer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 792
    Points : 2 914
    Points
    2 914
    Par défaut
    Citation Envoyé par Chubyone
    Tu détectes le changement de date coté server, puis tu rerempli tes TextBox avec le bon text (tu reprends la collec) : donc tu as besoin de créer une méthode d'initialisation des TextBox (plutot que le garder dans le textchanged)

    du genre

    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
     
    protected void InitializeTextBox( int Count )
    {
                        m_kIColTxBx.Clear();
                        for ( int i = 0; i < Count; ++i )
                        {
                            TextBox kTxBx = new TextBox();
                            kTxBx.ID = "TextBox_" + i.ToString();
                            kTxBx.Text = "Heure n° " + i.ToString();
                            kTxBx.Height = 30;
                            kTxBx.Width = 500;
                            kTxBx.Visible = true;
                            kTxBx.Enabled = true;
                            kTxBx.AutoPostBack = true;
     
                            m_kIColTxBx.Add( kTxBx );
     
                        }
                        AddTextBox( m_kIColTxBx );
     
    }
    que appelles dans le TextChanged:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    protected void nbheureTextBox_TextChanged(object sender, EventArgs e)
            {
                Debug.WriteLine( "TextBox1_TextChanged ######" );
                this.RemoveTextBox( m_kIColTxBx );
      int iNbtxtBx;
                    if ( Int32.TryParse( ( (TextBox)( sender ) ).Text, out iNbtxtBx ) )
                    {
    this.InitializeTextBox(iNbtxtBx);
    }
    }
    ainsi que dans le changement de date (attention le fait davoir change le nb dans le textbox influence linit)
    (C'est du coder a l'arrache rien testé)

    changer le positionnement des objets en asp.net ! jamais vu!!
    j'apprends!
    Mes articles, Mon Blog

    Rubrique Jasper/iReport :
    ------- Forum Jasper --------
    ----- FAQ Jasper/iReport -----


  4. #4
    Membre régulier Avatar de nimois3O
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    183
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Mai 2007
    Messages : 183
    Points : 70
    Points
    70
    Par défaut
    Citation Envoyé par JauB
    changer le positionnement des objets en asp.net ! jamais vu!!
    j'apprends!
    Chubyone c'est bon ce que tu me dis en haut ou pas ?

    Merci de vos réponces...
    "Ne faites pas à autrui ce que vous pouvez faire le jour même."

    [Francis Blanche]



  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    700
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 700
    Points : 780
    Points
    780
    Par défaut
    faut que tu test toi meme, moi je suis trop a larrache

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    700
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 700
    Points : 780
    Points
    780
    Par défaut
    Au fait, maintenant que j'ai un peu rematé ton code, je me suis rappelé que pour allez plus vite dans l'exemple, j'avais placé la collection en static...

    Tu va m'en dire tant...^^
    Disons que de cette façon, chaque utilisateur modifiera la meme collection
    Si tu veux faire un test : lance ta page simultanément sur IE/FIreFox/Opera, tu verra qu'ils on tous le meme nombre de textbox

    Il va falloir tout stocker ailleurs...

Discussions similaires

  1. [SSRS] Rapport entre les performances et la config
    Par Reskibil dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 31/10/2007, 16h52
  2. Rapport entre les Webparts et SQL serveur
    Par Louis-Guillaume Morand dans le forum ASP.NET
    Réponses: 1
    Dernier message: 04/10/2007, 16h09
  3. Des rapports entre libstdc++ et firefox
    Par spekal dans le forum Mandriva / Mageia
    Réponses: 2
    Dernier message: 11/11/2006, 14h06
  4. [VBA E] Problème de lien entre textbox et cellule
    Par vanessaferraz dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 21/06/2006, 08h49

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