none
comment rendre le bouton delete invisible en mode edit d'un gridview RRS feed

  • Question

  • Bonjour

    dans le gridview, il y a un bouton "delete" et un bouton "edit" à chaque ligne. Le bouton "delete" est défini en Itemtemplate, donc il ne devrait pas être vu en mode edit. Pourtant c'est le cas. Je voudrais cacher le bouton "delete" lorsqu'on clique dans le gridview sur le bouton "edit" pour empêcher de cliquer sur "delete" en mode edit. Avec ce code, il reste visible. Comment faire et comment se fait-il qu'il soit visible en mode edit?
    Merci

    <asp:GridView ID="GridView1" runat="server" DataSourceID="SqlDataSource1" >
    <Columns>
    <asp:TemplateField>
    <ItemTemplate>
    <asp:LinkButton ID="ann" runat="server" OnClientClick="return confirm('OK?');" CommandName="Delete">
    </asp:LinkButton>
    </ItemTemplate>
    </asp:TemplateField>
    <asp:CommandField ShowEditButton="True"/>
    ....
    </Columns>
    </asp:GridView>
    -------
    Protected Sub GridView1_RowEditing(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewEditEventArgs) Handles GridView1.RowEditing
    GridView1.EditIndex = e.NewEditIndex
    Dim ann As LinkButton = CType(GridView1.Rows(e.NewEditIndex).FindControl("ann"), LinkButton)
    ann.Visible = False
    End Sub
    lundi 23 novembre 2020 14:40

Réponses

  • Voici le code:

     Protected Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowDataBound

      If e.Row.RowType = DataControlRowType.DataRow Then
      If (e.Row.RowState = (DataControlRowState.Edit Or DataControlRowState.Alternate)) OrElse (e.Row.RowState = DataControlRowState.Edit) Then
      Dim ann As LinkButton = TryCast(e.Row.FindControl("ann"), LinkButton)
       ann.Visible = False
       End If
       End If
       End Sub

    Pourriez-vous m'aider à comprendre pourquoi ce bouton 'delete' est visible en mode edit alors qu'il est entre des balises ItemTemplate et non EditItemTemplate?

    Merci

    • Marqué comme réponse Raffarin vendredi 27 novembre 2020 13:09
    mercredi 25 novembre 2020 12:01
  • Bonjour 

    j'ai trouvé le bon code. 

    Merci. 

    J'aimerais comprendre comment ce fait-t-il que le bouton 'delete', qui est entre des balises ItemTemplate et non EditItemTemplate soit visible en mode edit (quand je clique sur le bouton 'edit'. Je vois alors pour cette ligne les trois boutons (delete, update et cancel)). Il n'y a rien dans le code-behind qui fasse quelque chose avec ce bouton. Qu'il soit visible en mode normal, c'est évident, mais en mode edit?

    Merci

    • Marqué comme réponse Raffarin jeudi 26 novembre 2020 09:41
    mercredi 25 novembre 2020 09:14

Toutes les réponses

  • Bonjour,

    Essyez de faire cela dans l'événement RowDataBound. Les threads suivants peuvent vous donner une idée:

    ASP.NET C# trying to hide a link button
    Hide Link Button of ItemTemplate from Grid View
    Hide particular button from grid view in asp.net


    Cordialement,
    Nina


    Microsoft propose ce service gratuitement, dans le but d'aider les utilisateurs et d'élargir les connaissances générales liées aux produits et technologies Microsoft. Ce contenu est fourni "tel quel" et il n'implique aucune responsabilité de la part de Microsoft.

    mardi 24 novembre 2020 12:36
    Modérateur
  • Bonjour 

    j'ai trouvé le bon code. 

    Merci. 

    J'aimerais comprendre comment ce fait-t-il que le bouton 'delete', qui est entre des balises ItemTemplate et non EditItemTemplate soit visible en mode edit (quand je clique sur le bouton 'edit'. Je vois alors pour cette ligne les trois boutons (delete, update et cancel)). Il n'y a rien dans le code-behind qui fasse quelque chose avec ce bouton. Qu'il soit visible en mode normal, c'est évident, mais en mode edit?

    Merci

    • Marqué comme réponse Raffarin jeudi 26 novembre 2020 09:41
    mercredi 25 novembre 2020 09:14
  • Bonjour Raf,

    Pourriez-vous partager avec nous la solution trouvée? De cette façon vous aiderez d'autres personnes qui rencontrent le même problème. Merci!

    Cordialement,

    Nina


    Microsoft propose ce service gratuitement, dans le but d'aider les utilisateurs et d'élargir les connaissances générales liées aux produits et technologies Microsoft. Ce contenu est fourni "tel quel" et il n'implique aucune responsabilité de la part de Microsoft.

    mercredi 25 novembre 2020 11:33
    Modérateur
  • Voici le code:

     Protected Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowDataBound

      If e.Row.RowType = DataControlRowType.DataRow Then
      If (e.Row.RowState = (DataControlRowState.Edit Or DataControlRowState.Alternate)) OrElse (e.Row.RowState = DataControlRowState.Edit) Then
      Dim ann As LinkButton = TryCast(e.Row.FindControl("ann"), LinkButton)
       ann.Visible = False
       End If
       End If
       End Sub

    Pourriez-vous m'aider à comprendre pourquoi ce bouton 'delete' est visible en mode edit alors qu'il est entre des balises ItemTemplate et non EditItemTemplate?

    Merci

    • Marqué comme réponse Raffarin vendredi 27 novembre 2020 13:09
    mercredi 25 novembre 2020 12:01