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 :

Petit problème de génération de contrôles (assez urgent)


Sujet :

ASP.NET

  1. #1
    Membre régulier Avatar de Azephel
    Inscrit en
    Février 2007
    Messages
    141
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Février 2007
    Messages : 141
    Points : 99
    Points
    99
    Par défaut [urgent!] Petit problème de génération de contrôles
    Bonjour!

    Voici mon problème :
    je voudrais générer un tableau HTML avec 5 colonnes. Le truc c'est que les deux premières colonnes sont des colonnes de boutons, la troisième colonne est le résultat d'une requête, la quatrième le résultat d'une autre requête et la cinquième de même. Pour l'instant je ne fais que les 3 premières colonnes.
    Il me faudrait donc générer dynamiquement les boutons, car le nombre de lignes dépend du nombre de résultats des requêtes.
    J'ai essayé un Controls.Add(UnBoutonCrééPlusTôt), mais une exception est lancée avec un message indiquant qu'un bouton doit se trouver dans un form avec runat="server", donc je ne sais pas où il me le génère...

    Voici un bout du code pour mieux appréhender "la chose" :

    Dans le code-behind :
    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
     
    Function TabClasses()
            If Not IsPostBack Then
                'Dim Retour As String
                Dim bouton As New Button()
                Dim Code As String = "<table border><tr><td></td><td></td><td></td><td>Nom de la classe</td></tr>"
                Dim Cnx As SqlConnection
                Dim reader As SqlDataReader
                Dim i As Integer = 1
     
                Cnx = New BdD().SeConnecter
                Dim command As SqlCommand = New SqlCommand(MaRequete, Cnx)
                'Paramètres
                reader = command.ExecuteReader()
                While reader.Read()
                    Code += "<tr><td style='width:0px'><input type='hidden' id='hide" & reader.GetInt32(0) & "' value='" & reader.GetInt32(0) & "'/></td><td>"
                    bouton.ID = "BtnSuppr" & reader.GetInt32(0)
                    bouton.Text = "Supprimer"
                    Controls.AddAt(i, bouton)
                    AddHandler bouton.Click, AddressOf Me.BtnDynaclick
                    Code += "</td><td>"
                    bouton.ID = "BtnModif" & reader.GetInt32(0)
                    bouton.Text = "Modifier"
                    Controls.AddAt(i, bouton)
                    AddHandler bouton.Click, AddressOf Me.BtnDynaclick
                    Code += "</td><td>" & reader.GetString(1) & "</td></tr>"
                    i += 1
                End While
     
                Code += "</table>"
                'Fermeture reader
                If Not IsNothing(reader) Then reader.Close()
                'Fermeture connection
                If Not IsNothing(Cnx) Then Cnx.Close()
                Return Code
            End If
        End Function
    Dans la page aspx :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <div class="contenu3">
               <asp:Panel ID="PanelDg" runat="server" HorizontalAlign="Center" Width="560px">
                <%=TabClasses()%>
    <br />
                <asp:Button ID="BtnCreate" runat="server" Height="23px" Text="Créer une classe" Width="110px" /></asp:Panel>
    
    etc...
    Je remercie d'avance celui/ceux qui m'apportera/ront la réponse!

  2. #2
    Membre actif Avatar de More
    Inscrit en
    Janvier 2007
    Messages
    252
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Janvier 2007
    Messages : 252
    Points : 268
    Points
    268
    Par défaut
    salut,

    voici un code qui fonctionne bien en Vb.net

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim but As New Button
                but.Name = "b1" ' le nom de ton boutton
                but.Text = "Afficher" ' le text afficher dans ton boutton
                but.Size = New Size(110, 20) ' la taille 
                but.Location = New System.Drawing.Point(16, y_chek) ' l'emplacement dans la form
                Me.Controls.Add(but)
    Et je crois qu'il fonctionnera dans Asp.Net puisque tu travail du meme langage.

    Bonne chance.

  3. #3
    Membre régulier Avatar de Azephel
    Inscrit en
    Février 2007
    Messages
    141
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Février 2007
    Messages : 141
    Points : 99
    Points
    99
    Par défaut
    Qu'est-ce que le y_chek?

    En fait je voudrais mettre les boutons dans les cellules du tableau correspondante. Si je fais çaen définissant un point à chaque fois, je vais pas m'embêter un peu?

  4. #4
    Membre actif Avatar de More
    Inscrit en
    Janvier 2007
    Messages
    252
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Janvier 2007
    Messages : 252
    Points : 268
    Points
    268
    Par défaut
    le y_chek est le Y, pour location , je crois que tu peut l'annuler et tu teste.

    bonne chance.

  5. #5
    Membre du Club
    Inscrit en
    Décembre 2003
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 57
    Points : 61
    Points
    61
    Par défaut
    Petite question, est-ce que quelque chose ou quelqu'un t'empecherait d'utiliser un DataGrid ??

  6. #6
    Membre régulier Avatar de Azephel
    Inscrit en
    Février 2007
    Messages
    141
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Février 2007
    Messages : 141
    Points : 99
    Points
    99
    Par défaut
    Oui, moi
    Plus sérieusement, j'ai abandonné l'idée du Datagrid suite à un autre problème :
    Je ne connais absolument pas le Datagrid, donc je ne savais pas comment récupérer l'index de la ligne cliquée. Je générais 2 colonnes de boutons (boutons Modifier et Supprimer) ainsi que d'autres colonnes étant le résultat d'une requête SQL. Donc en fait 2 problèmes :
    1-) Comment faire pour que certaines colonnes soient le résultat d'une autre requête? (en fait j'aurai besoin de 3 requêtes, les résultats allant dans 3 colonnes différentes)

    2-) Comment récupérer l'index de la ligne cliquée? Car lorsque je clique sur le bouton Supprimer dans la Datagrid, la Datagrid devient Enabled=False et un panel devient Visible=True. Dans ce panel il y a une demande de confirmation avec un bouton Oui et un bouton Non, et quand on clique sur Oui, là ça supprime la ligne cliquée dans le Datagrid et l'enregistrement dans la base de donnée.

    En tout cas si tu peux m'apporter des solutions à mes problèmes de Datagrid, j'en serais ravi!
    En plus j'ai gardé le Datagrid en commentaire, au cas où...

    [edit] Au fait, ça ne fait que 1mois et demi que j'ai commencé le VB.NET et les webforms, mais avant j'avais fait du C# en windowsform... Donc je suis un peu débutant [/edit]

  7. #7
    Futur Membre du Club
    Inscrit en
    Février 2007
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 7
    Points : 8
    Points
    8
    Par défaut c simple
    quand tu dessine le datagrid tu dois génerer ses proriété et d'ajouter des colonnes modeles(c-a-d) des colonnes lié.
    puis si tu veux, tu as le pouvoir de modifier les modéles.
    ici tu a deux choix tu vas travailler avec commandName pour qu'il puisse le serveur savoir sur quel boutton tu a cliqué.
    ou tu vas les ajouter avec la meme facon mais il sont a prés a utilisé, le probleme ici tu ne peux pas supprimer plusieurs ligne d'un seul coup.
    tu dois avec chaque clique de partir au serveur pour declencher le code.
    et je te conseille de mieux lire sur le datagrid je crois que mieux de compliqué les choses et d'ecrire le code en HTML.

  8. #8
    Membre régulier Avatar de Azephel
    Inscrit en
    Février 2007
    Messages
    141
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Février 2007
    Messages : 141
    Points : 99
    Points
    99
    Par défaut
    Tu ne voudrais pas poster un bout de code?
    C'est ce que j'ai essayé de faire, mais c'est aussi ce que je n'ai pas réussi à faire...

    C'est le but recherché : de ne pas pouvoir supprimer plusieurs lignes en même temps ^^

Discussions similaires

  1. [PDF] Migration petite application : génération des pdf. Utilisation de firefox -print ?
    Par raphaelneijens dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 02/06/2014, 12h06
  2. Réponses: 8
    Dernier message: 31/05/2011, 10h42
  3. Petit problème de génération de terrain
    Par DegubError dans le forum Développement 2D, 3D et Jeux
    Réponses: 4
    Dernier message: 15/09/2006, 10h16
  4. [jointure] Petit problème sur le type de jointure...
    Par SteelBox dans le forum Langage SQL
    Réponses: 13
    Dernier message: 13/02/2004, 19h55

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