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 :

[ASP.NET][2.0] GridView + ButtonField


Sujet :

ASP.NET

  1. #1
    mow
    mow est déconnecté
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 210
    Par défaut [ASP.NET][2.0] GridView + ButtonField
    Salut,

    Je souhaite personnaliser la gestion des boutons d'édition, de suppression, d'annulation ou de mise à jour.

    De ce fait, j'ai placé l'attribut AutoGenerateColumns à false et j'ai défini des contrôles ButtonField qui sont gérés via l'évènement RowCommand.

    Mon problème c'est que les boutons personnalisés ne sont pas dynamiques et oui contrairement aux boutons automatiques ils ne deviennent pas invisibles tout seuls.
    Le hic c'est que je n'arrive pas à les rendre invisible via le code C# - je pense que quelqu'un doit bien avoir des informations à ce sujet

    Merci d'avance,
    Mow

  2. #2
    Membre Expert
    Avatar de lakitrid
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    1 535
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 1 535
    Par défaut
    Si tu définis plusieurs ButtonField successif dans la GridView
    De mémoire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    private void gvXxxx_RowDataBound(Object sender,System.Web.UI.WebControls.GridViewRowEventArgs e)
    {
      if(e.Row.RowType == DataControlRowType.DataRow )
      {
         [Condition pour cacher ou non un des ButtonField]
         {
           e.Row.Cells[n].Visible = false;
         }
      }
    }
    Ici tu remplace n par l'index de la colonne du ButtonField.
    Attention si tu définis bien plusieurs ButtonField dans ta GridView tu risque d'avoir beaucoup d'espace gâché en fin de ligne du fait que chaque ButtonField génère une colonne.

  3. #3
    Membre émérite Avatar de kheironn
    Homme Profil pro
    Chef de projets technique C# / MVC / .Net
    Inscrit en
    Février 2007
    Messages
    822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projets technique C# / MVC / .Net
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2007
    Messages : 822
    Par défaut
    pour ce qui est des boutons edit, update et cancel. tu ne dois pas utiliser le type (merdique ; rien contre ton idée lakitrid) de button field

    Il faut que tu prennes un TemplateField (c'est que qui est le mieux pour faire un dev "custom")
    dedans tu places un itemTemplate dans lequel tu inserres un button, Imagebutton ou linkbutton avec la propriété CommandName = "EDIT"
    pour les deux autres bouttons, celà se fait dans un EditItemTemmplate, même principe avec les propriété à "UPDATE" et "CANCEL"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <asp:TemplateField HeaderText="toto" >
                        <ItemTemplate>
                                    <asp:LinkButton ID="lnkEdit" runat="server" CommandName="EDIT />
                        </ItemTemplate>
                        <EditItemTemplate>
                                            <asp:LinkButton ID="lnkUpdate" runat="server" CommandName="UPDATE" />
                                            <asp:LinkButton ID="lnkCancel" runat="server" Style="cursor: CommandName="CANCEL" />
                        </EditItemTemplate>
    </asp:TemplateField>
    dans le code behind, tu gères les événements...

    même principe pour DELETE et SELECT

    ici tu as les noms pour Gridview, mais le principe reste le même avec DataGrid

    ne pas oublier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    OnRowDeleting="gvPrestation_RowDeleting"
    OnRowCancelingEdit="gvPrestation_RowCancelingEdit"
    OnRowUpdating="gvPrestation_RowUpdating"
    OnRowEditing="gvPrestation_RowEditing"
    dans les propriétés du GridView

Discussions similaires

  1. [ASP.NET 3.5] Gridview, templater une ligne ?
    Par belfaigore dans le forum ASP.NET
    Réponses: 4
    Dernier message: 07/10/2008, 16h29
  2. Réponses: 3
    Dernier message: 16/09/2008, 15h28
  3. [ASP.NET] Problème de gridview
    Par castaka dans le forum ASP.NET
    Réponses: 2
    Dernier message: 11/10/2007, 16h23
  4. [ASP.Net 2.0] GridView : affichage Multi-tables.
    Par dinbougre dans le forum ASP.NET
    Réponses: 3
    Dernier message: 08/08/2007, 10h26
  5. [Asp.Net] Mettre un gridview dans un courriel
    Par Kiboumz dans le forum ASP.NET
    Réponses: 3
    Dernier message: 08/03/2007, 10h05

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