none
Button dans DataGridView RRS feed

  • Question

  • Bonjour à tous,

    J'essaye de faire un bouton dans une DataGridView de mon application.
    Voilà le code Asp.Net:

    <asp:Button ID="btnDetails" runat="server" Text="Details" CommandName="btnValider" CommandArgument="<%# CType(Container,GridViewRow).RowIndex %>" />
    
    


    Le Code-Behind:

    Private Sub lstDemandes_RowCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs) Handles lstDemandes.RowCommand
    
    If (e.CommandName = "btnDetails") Then
    
        Dim index As Integer = Convert.ToInt32(e.CommandArgument)
    
        Dim row As GridViewRow = Me.lstDemandes.Rows(index)
    
        Me.lblJustificative.Visible = True
    
        Me.txtJustificative.Visible = True
    
        Dim Id As Integer = row.Cells(0).ToString
    
        MsgBox(Id)
    
    End If
    
    End Sub
    
    


    Le problème est-ce que lorsque je clique sur le bouton btnDetails (dans le DataGridView), j'ai l'erreur:

    "Erreur du serveur dans l'application '/'."
    Détails de l'exception:
    System.ArgumentException: Argument de publication ou de rappel non valide. La validation d'événement est activée via <pages enableEventValidation="true"/> dans la configuration ou via <%@ Page EnableEventValidation="true" %> dans une page. Pour des raisons de sécurité, cette fonctionnalité vérifie si les arguments des événements de publication ou de rappel proviennent du contrôle serveur qui les a rendus à l'origine. Si les données sont valides et attendues, utilisez la méthode ClientScriptManager.RegisterForEventValidation afin d'inscrire les données de publication ou de rappel pour la validation.

    J'ai suivi le tuto http://msdn.microsoft.com/fr-fr/library/bb907626.aspx pour le faire marcher.

    Est-ce que quelqu'un pourrait m'aider svp?
    Merci d'avance.

    mercredi 1 juillet 2009 07:46

Toutes les réponses

  • Bonjour,
    L'erreur est généré puisque à chaque chargement de la page ,tu fait appel à DataBind()
    La solution c'est soit de remplir ton datagridview dans la méthode Init ou bien ajouter le test !IsPostBack.
    mercredi 1 juillet 2009 14:05
  • Merci de ta reponse.

    Je vais l'essayer et je poste après.
    Pour le moment, j'ai reussi à faire en changeant le TemplateItem par un ButtonField, et ça a marché nikel.
    vendredi 3 juillet 2009 07:17