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 :

problème checkbox dans gridview


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Inscrit en
    Avril 2004
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 4
    Par défaut problème checkbox dans gridview
    Bonjour,

    J'ai un gridview qui est définie dans le code behind comme ceci:

    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
     
            Dim col_DACOMP, col_LIOPE_COOPX, col_DAVALM, col_MONS As New BoundField
            Dim col_CONECI As New TemplateField
     
            mess = ""
     
            'Connexion à la base de l'appli
            DA.SQLConnect(ConfigurationManager.AppSettings("BaseAppli"), ConfigurationManager.AppSettings("CnxFormatString"))
     
            'Création source de données
            With SqlDataSourceEcritures
                .ConnectionString = ConfigurationManager.AppSettings("CnxFormatString") & "database=" & ConfigurationManager.AppSettings("BaseAppli") & ";"
                .SelectCommand = ReqEcritures(nucoi, comax, coopx, date_inf, date_sup, montant_inf, montant_sup, flag_mt_inf_0)
            End With
     
     
            'Définition des colonnes
     
            With col_CONECI
                .HeaderText = ""
                .ItemTemplate = New DynamicVuTemplate
                .ItemStyle.Width = New Unit(3, UnitType.Pixel)
            End With
     
            'Date de comptabilisation
            With col_DACOMP
                .DataField = "DACOMP"
                .HeaderText = "Date de comptabilisation"
                '.SortExpression = "DACOMP"
                .ItemStyle.Width = New Unit(15, UnitType.Percentage)
            End With
            'Libellé code opération (code opération)
            With col_LIOPE_COOPX
                .DataField = "LIOPE_COOPX"
                .HeaderText = "Code Opération"
                '.SortExpression = "LIOPE_COOPX"
                .ItemStyle.Width = New Unit(40, UnitType.Percentage)
            End With
            ' Date de valeur
            With col_DAVALM
                .DataField = "DAVALM"
                .HeaderText = "Date de valeur"
                '.SortExpression = "DAVALM"
                .ItemStyle.Width = New Unit(15, UnitType.Percentage)
            End With
            ' Montant
            With col_MONS
                .DataField = "MONS"
                .HeaderText = "Montant"
                '.SortExpression = "MONS"
                .ItemStyle.Width = New Unit(15, UnitType.Percentage)
            End With
     
            'Définition du GridVew
            With GV_Ecritures
                'Style du GridView
                .Width = New Unit(100, UnitType.Percentage)
                .BackColor = Color.FromName("White")
                .BorderColor = Color.FromArgb(153, 153, 153)
                .BorderStyle = 0
                .BorderWidth = New Unit(1, UnitType.Pixel)
                .CellPadding = 3
                .Font.Name = "Arial"
                .Font.Size = New FontUnit(10, UnitType.Pixel)
                .GridLines = 2
                'Comportement et lien aux données
                .DataKeyNames = New String() {"CONECI"}
                '.AllowSorting = False
                .AllowPaging = True
                .PageSize = 25
                .AutoGenerateColumns = False
                .PagerSettings.PageButtonCount = 15
                .DataSourceID = "SqlDataSourceEcritures"
                'style des parties annexes (entête, pied,...)
                .FooterStyle.BackColor = Color.FromArgb(204, 204, 204)
                .FooterStyle.ForeColor = Color.FromName("Black")
                .RowStyle.BackColor = Color.FromArgb(238, 238, 238)
                .RowStyle.ForeColor = Color.FromName("Black")
                .PagerStyle.BackColor = Color.FromArgb(135, 206, 235)
                .PagerStyle.ForeColor = Color.FromName("Black")
                .PagerStyle.HorizontalAlign = HorizontalAlign.Center
                .SelectedRowStyle.BackColor = Color.FromArgb(0, 138, 140)
                .SelectedRowStyle.Font.Bold = "True"
                .SelectedRowStyle.ForeColor = Color.FromName("White")
                '.HeaderStyle.BackColor = Color.FromArgb(135, 206, 235)
                .HeaderStyle.BackColor = Color.LightSteelBlue
                .HeaderStyle.Font.Bold = "True"
                .HeaderStyle.ForeColor = Color.FromName("White")
                .AlternatingRowStyle.BackColor = Color.FromName("Gainsboro")
                .PagerSettings.Mode = 3
     
                'Ajout des colonnes
     
                .Columns.Add(col_CONECI)
                .Columns.Add(col_DACOMP)
                .Columns.Add(col_LIOPE_COOPX)
                .Columns.Add(col_DAVALM)
                .Columns.Add(col_MONS)
     
                .DataBind()
     
     
            End With
    J'ai une class que j'ai récupéré sur le net pour définir mon template avec la checkbox:
    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
     
    Public Class DynamicVuTemplate
     
        Implements ITemplate
     
        Public Overridable Overloads Sub InstantiateIn(ByVal container As Control) Implements ITemplate.InstantiateIn
            'container: dataControlFieldCell, cellule en cours
            'Création d'un nouveau label
            Dim oVu As CheckBox = New CheckBox
     
            'Surcharge de la methode databinding du label, pointe sur BindLabel de la classe courante
            AddHandler oVu.DataBinding, AddressOf BindLabel
     
            'Ajout du label à la collection de controles de la cellule
            container.Controls.Add(oVu)
     
        End Sub
     
        Public Sub BindLabel(ByVal sender As Object, ByVal e As EventArgs)
            'Fonction appellée à la suite d'InstantiateIn, sender:oLabel
            'Redefinition de olabel, recuperation de celui de la fonction appelante
            Dim oVu As CheckBox = CType(sender, CheckBox)
            'Definition de la gridViewRow contenant oLabel (le namingContainer d'un objet dans une cellule est la row correspondante)
            Dim container As GridViewRow = CType(oVu.NamingContainer, GridViewRow)
            'Definition du comportement du label
            If Not IsDBNull(container.DataItem("CONECI")) Then
                Select Case container.DataItem("CONECI")
                    Case 1
                        oVu.Checked = True
                    Case Else
                        oVu.Checked = False
                End Select
                oVu.ID = "Ovu"
                oVu.Enabled = True
            End If
     
        End Sub
     
    End Class
    et quand je clique sur un bouton sur ma page je souhaite savoir si les lignes sont cochées ou pas:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
                Dim Rowstot As Integer = GV_Ecritures.Rows.Count
                For i = 0 To (Rowstot - 1)
                    If (CType(GV_Ecritures.Rows(i).Cells(0).FindControl("oVu"), CheckBox).Checked) Then
                        Response.Write("ok")
                    Else
                        Response.Write("ko")
                    End If
                Next
    Quand j'exécute la page j'ai l'erreur suivante sur mon test IF:

    La référence d'objet n'est pas définie à une instance d'un objet.
    Description : Une exception non gérée s'est produite au moment de l'exécution de la demande Web actuelle. Contrôlez la trace de la pile pour plus d'informations sur l'erreur et son origine dans le code.

    Détails de l'exception: System.NullReferenceException: La référence d'objet n'est pas définie à une instance d'un objet.


    Erreur source:


    Ligne 712 : Dim Rowstot As Integer = GV_Ecritures.Rows.Count
    Ligne 713 : For i = 0 To (Rowstot - 1)
    Ligne 714 : If (CType(GV_Ecritures.Rows(i).Cells(0).FindControl("oVu"), CheckBox).Checked) Then
    Ligne 715 : Response.Write("ok")
    Ligne 716 : Else


    Fichier source : V:\wwwDEV\TEXTO\nouvelle.aspx.vb Ligne : 714

    Trace de la pile:


    [NullReferenceException: La référence d'objet n'est pas définie à une instance d'un objet.]
    _Default.BAjoute_Click(Object sender, EventArgs e) in V:\wwwDEV\TEXTO\nouvelle.aspx.vb:714
    System.Web.UI.WebControls.Button.OnClick(EventArgs e) +126
    System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +135
    System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +39
    System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +37
    System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +87
    System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +4177

  2. #2
    Futur Membre du Club
    Inscrit en
    Avril 2004
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 4
    Par défaut
    je sais pas si c'est lié mais j'ai un panel dans ma page ?

    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
     
        <asp:Panel ID="PDetailEcritures" runat="server">
        <table cellspacing="0" rules="all" border="1" id="TDetailEcritures" style="background-color:White;font-family:Arial;font-size:11px;width:100%;border-collapse:collapse;">
    		<tr style="color:White;background-color:#87CEEB;font-weight:bold;">
                           <th colspan="5" style="font-weight: bold; color: black; height: 15px; background-color: lightsteelblue;">
                    Détail des écriture de frais</th>
    		</tr>
    		<tr style="color:White;background-color:#87CEEB;font-weight:bold;">
                <td style="width:15%; height: 17px; background-color: gainsboro;">
                    <asp:GridView ID="GV_Ecritures" runat="server"> 
                    </asp:GridView>
                    <asp:SqlDataSource ID="SqlDataSourceEcritures" runat="server">
                    </asp:SqlDataSource>
                </td>
    		</tr>
    		<tr onmouseout="document.body.style.cursor='default';" onmouseover="document.body.style.cursor='hand';" style="color:Black;background-color:#EEEEEE;">
    		</tr>
    		<tr onmouseout="document.body.style.cursor='default';" onmouseover="document.body.style.cursor='hand';" style="color:Black;background-color:#EEEEEE;">
    		</tr>
    	</table>
    	    </asp:Panel>

Discussions similaires

  1. Problème CheckBox dans JTable
    Par l4r3nZu dans le forum Composants
    Réponses: 2
    Dernier message: 28/05/2011, 14h02
  2. CheckBox dans Gridview que je retrouve vide
    Par Michelk12 dans le forum ASP.NET
    Réponses: 2
    Dernier message: 13/09/2010, 15h52
  3. Problème checkbox dans getJspContext().getOut().write(etc)
    Par mumu27 dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 02/02/2010, 14h31
  4. problème CheckBox dans une Datatable
    Par rc.dev2009 dans le forum JSF
    Réponses: 3
    Dernier message: 23/04/2009, 17h47
  5. Checkbox dans gridview (coché ou non en load)
    Par Tidus159 dans le forum ASP.NET
    Réponses: 2
    Dernier message: 28/05/2008, 14h07

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