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 :

Datagrid : ButtonColumn, EditCommandColumn = plantage !


Sujet :

ASP.NET

  1. #1
    Membre éclairé Avatar de lolymeupy
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    402
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2006
    Messages : 402
    Par défaut Datagrid : ButtonColumn, EditCommandColumn = plantage !
    Bonjour,
    j'ai un gros bug depuis ce matin.
    Je bosse sur 3 modules DotNetNuke, dans lesquels il y a 1 datagrid à chaque fois.
    Il n'y a aucun problème pour charger les données dans les datagrids, mais des qu'il s'agit de faire une modif ou une suppression (EditCommandcolumn ou ButtonColumn avec une fonction CommandName="Ma_Fonction" par exemple...) ça plante ?!
    Le message est le même quelque soit le datagrid et le type de column utilisée...?
    "La référence d'objet n'est pas définie à une instance d'objet"

    En gros, j'ai l'impression qu'il charge bien les datagrid, qu'il affiche les données, et qu'il "décharge" les datagrid ensuite qui ne sont + instanciés...
    Mais à aucun moment je n'ai de fonction qui me fait ça...
    Lorsque je clique sur le ButtonColumn "supprimer" par exemple, celui-ci fait directement appelle à ma fonction "Fct_Supprimer" via le paramètre "CommandName" dans la balise concernée. Et le problème c'est qu'il ne passe même pas dans la fonction Fct_Supprimer ????

    Et le pire c'est que Vendredi soir tout marchait nickel !!! et que je n'ai touché à aucune de mes pages asp depuis...?

    Donc si quelqu'un a une idée, merci d'avance ...parce que là je patauge complètement....

  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
    Va falloir mettre en pratique les 3R
    Reéssaye, reboot, réinstalle ^^

  3. #3
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    et en plus si tu nous mets pas le moindre petit bout de code, ça va être dur de faire quelque chose pour toi

  4. #4
    Membre éclairé Avatar de lolymeupy
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    402
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2006
    Messages : 402
    Par défaut
    Ok. Merci à vous 2
    Pour les 3R, ça va être cho parce que c'est sur un PC à distance. PC qui est dédié à l'intranet, et avec presque 1 centaine de projets dessus ( 1 gros merdier en fait...)
    Et pis je vois pas trop commennt rebooter et quoi reinstaller

    Sinon, je mets un bout de code d'1 des modules :
    page aspx :
    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
    38
    39
     
    <%@ Control Language="vb" AutoEventWireup="false" Codebehind="BonsLivraison.ascx.vb" Inherits="Sagem.DNN.Modules.BonsLivraison.BonsLivraison" %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <TABLE id="Table2" cellSpacing="0" cellPadding="1" width="616px" border="0">
    	<TR>
    	<TD width="70"></TD>
    	<TD><asp:dropdownlist id="Ddl_Personne" Width="200" runat="server" Enabled="True" AutoPostBack="True"></asp:dropdownlist></TD>
    	</TR>
    </TABLE>
    <asp:datagrid id="DG_Bons" runat="server" Width="616px" AllowPaging="True" AllowSorting="True"
    	CellPadding="0" BackColor="White" BorderWidth="1px" BorderStyle="None" BorderColor="#3366CC"
    	AutoGenerateColumns="False" GridLines="None" PageSize="20">
    	<SelectedItemStyle Font-Bold="True" ForeColor="#CCFF99" BackColor="#009999"></SelectedItemStyle>
    	<ItemStyle Height="20px" ForeColor="#003399" BackColor="White"></ItemStyle>
    	<HeaderStyle Font-Bold="True" Height="20px" ForeColor="#CCCCFF" BackColor="#003399"></HeaderStyle>
    	<FooterStyle Height="20px" ForeColor="#003399" BackColor="#99CCCC"></FooterStyle>
    	<Columns>
    		<asp:BoundColumn DataField="Bo_idBon" HeaderText="ID"></asp:BoundColumn>
    		<asp:BoundColumn DataField="NomPrenom" HeaderText="Expéditeur"></asp:BoundColumn>
    		<asp:BoundColumn DataField="Bo_dDate" HeaderText="Date"></asp:BoundColumn>
    		<asp:HyperLinkColumn Text="&lt;img border='0' src='images/BonsLivraison/button_print.gif' alt='Imprimer' title='Imprimer' /&gt;"
    			Target="_blank" DataNavigateUrlField="Bo_IdBon" DataNavigateUrlFormatString="imprimer_bons.aspx?id={0}">
    			<ItemStyle Width="20px"></ItemStyle>
    		</asp:HyperLinkColumn>
    		<asp:HyperLinkColumn Text="&lt;img border='0' src='images/BonsLivraison/button_dupliquer.gif' alt='Dupliquer' title='Dupliquer' /&gt;"
    			DataNavigateUrlField="Bo_IdBon" DataNavigateUrlFormatString="/DotNetNuke/Default.aspx?tabid=114&amp;id={0}">
    			<ItemStyle HorizontalAlign="Center"></ItemStyle>
    		</asp:HyperLinkColumn>
    		<asp:HyperLinkColumn Text="&lt;img border='0' src='images/BonsLivraison/button_modifier.gif' alt='Modifier' title='Modifier' /&gt;"
    			DataNavigateUrlField="Bo_IdBon" DataNavigateUrlFormatString="/DotNetNuke/Default.aspx?tabid=114&amp;id={0}&amp;mod=1">
    			<ItemStyle HorizontalAlign="Center"></ItemStyle>
    		</asp:HyperLinkColumn>
    		<asp:ButtonColumn Text="&lt;img border='0' src='images/BonsLivraison/button_cancel.gif' alt='Supprimer' title='Supprimer' /&gt;"
    			CommandName="Supprimer">
    			<ItemStyle Width="20px"></ItemStyle>
    		</asp:ButtonColumn>	
    	</Columns>
    	<PagerStyle Height="20px" HorizontalAlign="Left" ForeColor="#003399" BackColor="#99CCCC" Mode="NumericPages"></PagerStyle>
    </asp:datagrid>
    et 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
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    Option Strict Off
    
    Imports System
    Imports System.Web
    Imports System.Web.UI
    Imports System.Web.UI.Control
    Imports System.Web.UI.WebControls.LinkButton
    Imports System.Web.UI.WebControls
    
    Namespace Sagem.DNN.Modules.BonsLivraison
    
        Public MustInherit Class BonsLivraison
    		Inherits Entities.Modules.PortalModuleBase
    		Implements Entities.Modules.IActionable
    		Implements Entities.Modules.IPortable
    		Implements Entities.Modules.ISearchable
            Private bon As bon
            Private entrepriseExpeditrice As Entreprise
            Private personneExpeditrice As Personne
            Protected WithEvents Ddl_Personne As System.Web.UI.WebControls.DropDownList
    #Region "Controls"
    #End Region
    
    #Region "Event Handlers"
            Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    
                If Not Page.IsPostBack Then
    
                    Dim i As Integer
                    Dim temp As Integer
                    If Ddl_Personne.SelectedValue = "" Then
                        temp = 0
                    Else
                        temp = Ddl_Personne.SelectedValue
                    End If
                    'Dim ChoixExpe As Integer
    
                    bon = New bon
                    entrepriseExpeditrice = New Entreprise(1)
                    personneExpeditrice = New Personne(temp)
    
                    Afficher_Personne()
    
                    'chargement du DataGrid
                    If Page.IsPostBack Then
                        If personneExpeditrice.IdPersonne > 0 Then
                            DG_Bons.DataSource = bon.ListerOne(personneExpeditrice.IdPersonne)
                            DG_Bons.DataBind()
                        Else
                            DG_Bons.DataSource = bon.Lister
                            DG_Bons.DataBind()
                        End If
                    Else
                        DG_Bons.DataSource = bon.Lister
                        DG_Bons.DataBind()
                    End If
    
                End If
    
            End Sub
    
            Private Sub Afficher_Personne()
                Dim i As Integer
    
                Ddl_Personne.SelectedIndex = -1
                Ddl_Personne.DataSource = personneExpeditrice.Lister(entrepriseExpeditrice.IdEntreprise)
                Ddl_Personne.DataValueField = "Pe_idPersonne"
                Ddl_Personne.DataTextField = "NomPrenom"
                Ddl_Personne.DataBind()
                For i = 0 To Ddl_Personne.Items.Count - 1
                    If Ddl_Personne.Items(i).Value = personneExpeditrice.IdPersonne Then
                        Ddl_Personne.SelectedIndex = i
                    End If
                Next
    
                If Not Ddl_Personne.SelectedItem Is Nothing Then
                    personneExpeditrice.IdPersonne = Ddl_Personne.SelectedValue
                End If
            End Sub
    
            Private Sub DG_Bons_ItemCommand(ByVal sender As System.Object, ByVal e As DataGridCommandEventArgs) Handles DG_Bons.ItemCommand
                Select Case e.CommandName
                    Case "Imprimerf"
                    Case "Supprimer"
                        bon = New bon(CInt(e.Item.Cells(0).Text))
                        bon.Supprimer()
                        DG_Bons.DataSource = bon.Lister
                        DG_Bons.DataBind()
                End Select
            End Sub
    
            Private Sub DG_Bons_PageIndexChanged1(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridPageChangedEventArgs) Handles DG_Bons.PageIndexChanged
                DG_Bons.CurrentPageIndex = e.NewPageIndex
                DG_Bons.DataSource = bon.Lister
                DG_Bons.DataBind()
            End Sub
    
    #End Region
    
    #Region "Optional Interfaces"
            Public ReadOnly Property ModuleActions() As Entities.Modules.Actions.ModuleActionCollection Implements Entities.Modules.IActionable.ModuleActions
                Get
                    Dim Actions As New Entities.Modules.Actions.ModuleActionCollection
                    Actions.Add(GetNextActionID, Localization.GetString(Entities.Modules.Actions.ModuleActionType.AddContent, LocalResourceFile), Entities.Modules.Actions.ModuleActionType.AddContent, "", "", EditUrl(), False, DotNetNuke.Security.SecurityAccessLevel.Edit, True, False)
                    Return Actions
                End Get
            End Property
    
            Public Function ExportModule(ByVal ModuleID As Integer) As String Implements Entities.Modules.IPortable.ExportModule
                ' included as a stub only so that the core knows this module Implements Entities.Modules.IPortable
            End Function
    
            Public Sub ImportModule(ByVal ModuleID As Integer, ByVal Content As String, ByVal Version As String, ByVal UserID As Integer) Implements Entities.Modules.IPortable.ImportModule
                ' included as a stub only so that the core knows this module Implements Entities.Modules.IPortable
            End Sub
    
            Public Function GetSearchItems(ByVal ModInfo As Entities.Modules.ModuleInfo) As Services.Search.SearchItemInfoCollection Implements Entities.Modules.ISearchable.GetSearchItems
                ' included as a stub only so that the core knows this module Implements Entities.Modules.ISearchable
            End Function
    
    #End Region
    
    #Region " Web Form Designer Generated Code "
    
            'This call is required by the Web Form Designer.
            <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
    
            End Sub
            Protected WithEvents DG_Bons As System.Web.UI.WebControls.DataGrid
    
            'NOTE: The following placeholder declaration is required by the Web Form Designer.
            'Do not delete or move it.
            Private designerPlaceholderDeclaration As System.Object
    
            Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
                'CODEGEN: This method call is required by the Web Form Designer
                'Do not modify it using the code editor.
                InitializeComponent()
            End Sub
    
    #End Region
    
        End Class
    
    End Namespace
    J'ai mis en gras les 2 sub qui "plantent" même si ça vient pas d'elles puisqu'il ne passe pas dans ces 2 subs ?!
    Si je clique sur le ButtonColumn 'supprimer' ou sur un num. de page, j'ai toujours le même message :
    "La référence d'objet n'est pas définie à une instance d'objet"
    (et c'est la même pour mes 2 autres modules...)

    Je me suis renseigné un peu, et j'ai cru voir un truc la dessus concernat OnBubbleEvent...Par contre, je vois pas du tout comment utiliser ça et comment ça pourrait m'aider....

    En tout cas, merci pour votre aide.

  5. #5
    Membre éclairé Avatar de lolymeupy
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    402
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2006
    Messages : 402
    Par défaut
    Je viens de tomber sur ça :
    http://support.microsoft.com/kb/889531/fr
    ...et je capte pas tout ce qui faut faire, mais j'ai l'impression que mon problème vient de là ! Ce qui n'est pas rassurant du tout

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par lolymeupy Voir le message
    Je viens de tomber sur ça :
    http://support.microsoft.com/kb/889531/fr
    ...et je capte pas tout ce qui faut faire, mais j'ai l'impression que mon problème vient de là ! Ce qui n'est pas rassurant du tout
    Non, le problème décrit sur cette page n'a rien à voir... il s'agit du contrôle DataGrid de Windows Forms, pas d'ASP.NET.

  7. #7
    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
    Essaye de killer ton appli web pour commencer

  8. #8
    Membre éclairé Avatar de lolymeupy
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    402
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2006
    Messages : 402
    Par défaut
    Essaye de killer ton appli web pour commencer
    Est-ce que tu peux préciser s'il-te-plait ?

  9. #9
    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 récupères le nom du pool dans lequel tourne ton appli
    - Tu lances iisapp pour récupèrer le process id correspondant (http://www.microsoft.com/technet/pro....mspx?mfr=true)
    - Tu kill le process (kill pID en ligne de commande)

  10. #10
    Membre éclairé Avatar de lolymeupy
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    402
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2006
    Messages : 402
    Par défaut
    Merci lutecefalco.
    Effectivement, ça marche beaucoup mieux !
    En fait, je viens d'en discuter avec un collegue, et apparement ça plante parce que les applis des test pour l'intranet sont sur 1 PC assez "vieux" et qui tourne en permanence. Donc, se serait du à des "baisses de forme" de sa part...

    En tout cas, ça a marché nickel donc merci encore
    (et merci aussi Tomlev)

  11. #11
    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
    Vu que c'est de la recette, tu peux configurer un recyclage automatique du pool toutes les x minutes

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 17/08/2007, 19h19
  2. Datagrid avec plusieurs colonnes EditCommandColumn
    Par elleN dans le forum ASP.NET
    Réponses: 4
    Dernier message: 20/07/2007, 18h00
  3. Réponses: 2
    Dernier message: 19/07/2007, 14h45
  4. Réponses: 3
    Dernier message: 02/02/2007, 07h15
  5. [] Datagrid vide après modification des propriétés
    Par SpaceFrog dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 20/09/2002, 16h37

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