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 :

Faire un bouton transfert du style "AutoGenerateDeleteButton"


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Jefty
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Décembre 2009
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2009
    Messages : 203
    Par défaut Faire un bouton transfert du style "AutoGenerateDeleteButton"
    Bonjour à tous.

    J'ai donc un GridView avec une génération automatique d'un bouton "delete" et "update".
    Je voudrais savoir si l'on pouvait rajouter/créer un autre bouton du même style qui s'implanterait aussi à chaque ligne.

    Ce bouton aurait pour but de transférait une partie des données du GridView dans une autre table, pour remplir une autre GridView.
    J'aimerais en avoir un à droite de ma GridView si possible(pour éviter d'avoir les 3 boutons à coter) afin de réaliser ce transfert.

    Une petite piste?

    Merci d'avance.

  2. #2
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Tu rajoutes une colonne, et tu crées un template pour la cellule concernée où tu ajoutes un bouton

  3. #3
    Membre Expert
    Inscrit en
    Mai 2006
    Messages
    1 364
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 1 364
    Par défaut
    Salut,

    Regarde du coté de TemplateField et de ITemplate. Ca permet de personnaliser les données dans le gridview (par exemple mettre un bouton, un lien, ...).

    a+

  4. #4
    Membre confirmé Avatar de Jefty
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Décembre 2009
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2009
    Messages : 203
    Par défaut
    J'ai réussi grâce aux exemples suivants:

    http://authors.aspalliance.com/aspxt...ogridview.aspx

    Merci bien.

  5. #5
    Membre confirmé Avatar de Jefty
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Décembre 2009
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2009
    Messages : 203
    Par défaut
    En faite, j'ai réussi à créer le bouton, mais je n'arrives pas à comprendre comment faire ma requête d'insertion.

    Voilà le code du bouton déjà:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <asp:templatefield HeaderText="Transfert" HeaderStyle-ForeColor="yellow"  >
                        <itemtemplate>
                           <asp:imagebutton ID="Transfert" runat="server" commandname="select" imageurl="Images/Transfert.jpg" />
                        </itemtemplate>
                     </asp:templatefield>
    J'ai besoin, au clic sur le bouton, de réaliser 2 insertions dans 2 bases différentes.
    J'avais essayer avec une partie de code trouver sur un forum, mais il ne fonctionne pas, il me semblait de toute façon incomplet.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    void getSelected(Object src, EventArgs e)
            {
                string id = GvTA.SelectedDataKey.Value.ToString();
                string query = "INSERT INTO [WBDT_MNT_TICKET] (ID_DT_Ticket, TicketTypeCode, DateValueA, DateValueI, EventCode, AssignedUserID, DTStatus, SessionUserID, WorkBench, WorkBenchDiv, EmailFollowing, Worker, WorkerCount) VALUES ('@ID_Ticket', '@TicketTypeCode', '@DateValueA', '@DateValueI', 001, '@AssignedUserID', 001, '@SessionUserID', '@WorkBench', '@WorkBenchDiv', '@EmailFollowing', '" + ddlInterv.Text + "', 1)";
            }
    Mais du coup je ne savais pas où mettre la deuxième requêtes d'insertion:

    string query = "INSERT INTO [WBDT_DT_TICKET] (EventCode, AssignedUserID, DTStatus, Worker, WorkerCount) VALUES (001, '@AssignedUserID', 001, '" + ddlInterv.Text + "', 0)";

    Bref, j'ai mes deux requêtes, mais je ne sais pas quoi en faire.
    Si vous pouviez m'aider.

  6. #6
    Membre Expert
    Inscrit en
    Mai 2006
    Messages
    1 364
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 1 364
    Par défaut
    Oui, et c'est quoi le probleme ?
    Erreur SQL ? Echec de recuperation des données dans le 1er tableau ? Echec de l'insertion ?

  7. #7
    Membre confirmé Avatar de Jefty
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Décembre 2009
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2009
    Messages : 203
    Par défaut
    Bon et bien, voici ma dernière tentative de la journée:


    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 Transfert_Click(object sender, EventArgs e)
            {
                string ID_Ticket = GvTA.SelectedRow.Cells[0].Text;
                string TicketTypeCode = GvTA.SelectedRow.Cells[1].Text;
                string DateValueA = GvTA.SelectedRow.Cells[3].Text;
                string ID_Demandeur = GvTA.SelectedRow.Cells[4].Text;
                string Poste = GvTA.SelectedRow.Cells[6].Text;
                string Sous_Poste = GvTA.SelectedRow.Cells[7].Text;
                string Email = GvTA.SelectedRow.Cells[11].Text;
     
                string connectionString = GetConnectionString();
                using (SqlConnection connection = new SqlConnection())
                {
                    connection.ConnectionString = connectionString;
                    connection.Open();
                    string strqr = "INSERT INTO [WBDT_MNT_TICKET] (ID_DT_Ticket, TicketTypeCode, DateValueA, DateValueI, EventCode, AssignedUserID, DTStatus, SessionUserID, WorkBench, WorkBenchDiv, EmailFollowing, WorkerCount) VALUES ('ID_Ticket', 'TicketTypeCode', 'DateValueA', '" + Convert.ToDateTime(Time.Text) + "', '009', '" + ddlInterv.Text + "', '001', 'ID_Demandeur', 'Poste', 'Sous_Poste', 'Email', '1')";
                    SqlCommand myCm = new SqlCommand(strqr, connection);
                    int numrw = myCm.ExecuteNonQuery();
                    connection.Close();
                }
            }
    Et voici l'erreur:

    Object reference not set to an instance of an object.
    J'ai l'impression d'être pas loin, mais.... non ça fonctionne pas

  8. #8
    Membre confirmé Avatar de Jefty
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Décembre 2009
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2009
    Messages : 203
    Par défaut
    J'avance petit à petit, c'est bien mais c'est long

    J'ai réussi à lire les cellule du gridview, mais j'ai des problèmes de formats à l'insertion et j'ai beau convertir, ça ne fonctionne pas.
    En plus les messages d'erreurs ne dissent jamais quel est l'objet mal converti, il informe juste qu'une des conversions n'est pas réalisable.
    Où alors l'info est bien cacher.
    bref....

    le code re-re-changer:

    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
    protected void GvTA_SelectedIndexChanged(object sender, EventArgs e)
            {
     
                string ID_Ticket = GvTA.SelectedRow.Cells[1].Text;
                string TicketTypeCode = GvTA.SelectedRow.Cells[2].Text;
                string DateValueA = GvTA.SelectedRow.Cells[4].Text;
                string ID_Demandeur = GvTA.SelectedRow.Cells[5].Text;
                string Poste = GvTA.SelectedRow.Cells[8].Text;
                string Sous_Poste = GvTA.SelectedRow.Cells[9].Text;
                string Email = GvTA.SelectedRow.Cells[13].Text;
     
                string connectionString = GetConnectionString();
                using (SqlConnection connection = new SqlConnection())
                {
                    connection.ConnectionString = connectionString;
                    connection.Open();
                    string strqr = "INSERT INTO [WBDT_MNT_TICKET] (ID_DT_Ticket, TicketTypeCode, 'DateValueA', DateValueI, EventCode, AssignedUserID, DTStatus, SessionUserID, WorkBench, WorkBenchDiv, EmailFollowing, WorkerCount) VALUES ('" + Convert.ToInt32(ID_Ticket) + "', '" + Convert.ToInt32(TicketTypeCode) + "', '" + Convert.ToDateTime(DateValueA) + "', '" + Convert.ToDateTime(Time.Text) + "', '009', '" + ddlInterv.Text + "', '001', 'ID_Demandeur', 'Poste', 'Sous_Poste', '" + Convert.ToInt32(Email) + "', '1')";
                    SqlCommand myCm = new SqlCommand(strqr, connection);
                    int numrw = myCm.ExecuteNonQuery();
                    connection.Close();
                }
            }
    Bon déjà, j'ai
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    string Poste = GvTA.SelectedRow.Cells[8].Text;
    égale à rien, pourtant j'ai une valeur dans mon gridview.

    Et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    string Email = GvTA.SelectedRow.Cells[13].Text;
    égale aussi à rien alors que c'est un CheckBoxField, cela ne devrait il pas retourner vrai ou faux?

    Bref², à l'insertion ça ne fonctionne pas.
    Ma base de données est faite comme ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    ID_ticket                                    int
    DateValueA et DateValueI             datetime
    EventCode                                  nchar(3)
    AssignedUserID                            nchar(10)
    DTStatut                                    nchar(3)
    SessionUserID                              nchar(10)
    TicketTypeCode                           nchar(1)
    EmailFollowing                              bit
    WorkBench et WorkBenchDiv          nchar(10)
    WorkerCount                               int

    Pourriez vous m'aider à trouver mes problèmes de conversion svp.
    Merci d'avance.

  9. #9
    Membre confirmé Avatar de Jefty
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Décembre 2009
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2009
    Messages : 203
    Par défaut
    J'ai réussi une insertion, le problème venait du format date dans mon 1er Gridview.

    Le 1er Gridview obtient sa date au format anglais(serveur en anglais) grâce à une Textbox lorsque je fais un ajout dedans.
    Cette date était convertie à l'affichage dans la 1er Gridview, en Français pour plus de lisibilité:

    DataFormatString="{0:dd/MM/yyyy HH:mm}" HtmlEncode="False"
    Le problème c'est que lorsque j'utilisais mon bouton transfert entre les 2 Gridview, la récupération de la date du Gridview 1 qui était en Français ne pouvait plus être convertie en Anglais (taille trop grande) pour être enregistré dans la table de la Gridview 2.

    En enlevant le format d'heure que j'ai mis plus haut pour la colonne du Gridview, ça fonctionne parfaitement.
    Donc y à t'il une méthode pour que je puisse afficher l'heure en Français, sans que ça engendre un problème plus tard?

Discussions similaires

  1. Faire des boutons de style Windows 2000
    Par vg-matrix dans le forum Composants VCL
    Réponses: 1
    Dernier message: 29/09/2010, 14h16
  2. Réponses: 1
    Dernier message: 22/09/2005, 16h15
  3. [FLASH MX2004] Problème pour faire un bouton play
    Par melanie075 dans le forum Flash
    Réponses: 13
    Dernier message: 16/12/2004, 22h55

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