Un petit coup de main?

Signaler
Messages postés
99
Date d'inscription
vendredi 23 mars 2007
Statut
Membre
Dernière intervention
27 mai 2009
-
Messages postés
99
Date d'inscription
vendredi 23 mars 2007
Statut
Membre
Dernière intervention
27 mai 2009
-
Bonjour,

Mon problème est assez compliqué, alors je vais essayer d'être assez clair:

J'ai du code vb.net dans mon code aspx.
Mon code vb.net genere un tableau dynamique composé de données qui sont dans un fichier xml.
Pour chaque ligne créée, il y a une Checkbox et deux boutons (supprimer et modifier).
les id de mes checkbox sont modifiée à chaque nouvelle ligne via une fonction, l'id est donc une variable.
J'ai fais une fonction cliqué qui est lancée quand je clique sur le bouton supprimer.
Tout ça marche.
Maintenant je voudrais que quand je clique sur mon bouton supprimer, je puisse récupérer l'id de la checkbox de la même ligne, comment faire?

Voici mon code vb.net dans la page aspx:

Try
      While reader.Read()
           
            prof = reader.Depth
            Select Case reader.NodeType

                Case XmlNodeType.Element
                   
                    If prof = 1 Then
                       
                        'lit l'attribut a la position 0
                        Response.Write(reader.GetAttribute(0) & " " & pos)
                        tab(pos) = (reader.GetAttribute(0))
                        Response.Write("<TR>")
                        'MsgBox(pos)
                        pos = pos + 1
                       
                        Dim id As String = change_id_ckb(pos)
                       
                        Response.Write("<td>")%> ' />
                       <% 
                          
                           Response.Write(id)
                        
                          
                           Response.Write("</td>")
                         
                          
                    End If

et mes fonction dans la page aspx.vb:

    Public Function change_id_ckb(ByVal pos As Integer) As String
        Dim id As String
        id = "ckb_id" & pos
        Return id

        'MsgBox(ckb_id0.ID)
    End Function

    Public Sub coch(ByVal id As String)
        MsgBox("coché")
    End Sub

    Protected Sub supprimer_click(ByVal sender As Object, ByVal e As System.EventArgs) Handles supprimer.Click

    End Sub

Merci d'avance

8 réponses

Messages postés
2813
Date d'inscription
mardi 15 avril 2003
Statut
Membre
Dernière intervention
2 juin 2020
38
Re!

On ne peut pas te répondre si on ne sais pas :

Quelle procédure modifi ou crée tes checkbox dynamiquement, 

"Maintenant je voudrais que quand je clique sur mon bouton supprimer, je puisse récupérer l'id de la checkbox de la même ligne, comment faire?" <== de la même ligne que quoi ?
Soit plus explicite ca parrait simple pour toi mais nous n'avons pas ta source au complet, as tu un bouton supprimer par ligne ?

Mayzz
Messages postés
99
Date d'inscription
vendredi 23 mars 2007
Statut
Membre
Dernière intervention
27 mai 2009

Salut,

oui j'ai un bouton supprimer pas ligne.
(ligne de mon tableau dynamique)

En fait j'ai peut-être trouvé plus simple:
est ce que je peux faire ça:

mais en passant des paramètres à toto?
moi j'aurais voulu faire quelque chose du genre:

mais ça ne marche pas, l'erreur est:

'toto' n'est pas un membre de 'ASP.default_aspx'.

ou:

L'opérande 'AddressOf' doit être le nom d'une méthode (sans parenthèses).

pourquoi?
Messages postés
2813
Date d'inscription
mardi 15 avril 2003
Statut
Membre
Dernière intervention
2 juin 2020
38
Je ne comprend pas bien ton idée, il faut bien te dire que le développement se fait en 2 parties (Coté client, coté serveur)....

Je pense pour toi, que tu devrais, donner un ID à chaque contrôle lors de la création dynamique, de la, quand tu crée un bouton tu lui donne un id de ligne (0, 1, 2...) puis idem pour ton checkbox quand tu rentre dans ta procédure click de ton bouton, si le "sender" à l'id "0" alors tu obtient par la mème occasion l'id du checkbox.

Mayzz
Messages postés
99
Date d'inscription
vendredi 23 mars 2007
Statut
Membre
Dernière intervention
27 mai 2009

Tu peux me donner un exemple?
Messages postés
2813
Date d'inscription
mardi 15 avril 2003
Statut
Membre
Dernière intervention
2 juin 2020
38
Justement non, car je n'ai aucune idée de la façon dont tu crée tes controles, je ne peux pas faire fonctionner ta source chez moi vu que je n'ai pas le fichier de données qui va avec, de ce fait, je n'ai pas d'idée précise de ce à quoi peut ressemblé ton tableau, ce que je sais c'est que tu écrit des éléments html sur ta page selon ce qui se trouve dans ta base de données.


En fait, je ne sais même pas ce que tu veux faire au finale...

Mayzz.
Messages postés
99
Date d'inscription
vendredi 23 mars 2007
Statut
Membre
Dernière intervention
27 mai 2009

Alors voici mon fichier de données (.XML)



<?xml version= "1.0" encoding="utf-8" standalone="yes"?>
<!-- This is a sample XML document -->
<!DOCTYPE Items [<!ENTITY number "123">]>

   
     
      test avec un element enfant
        <more/>
       
       
      test avec une section CDATA  <![CDATA[<456>]]> def
      Test avec une entite de caractere: &#65;
      <!-- Fourteen chars in this element.-->
      1234567890ABCD
     
   
   
      Test with an entity: &number;
      test with a child element<more/>stuffjfps
      test with a CDATA section <![CDATA[<456>]]> def
      Test with an char entity: &#65;
      <!-- Fourteen chars in this element.-->
      1234567890ABCD
   
   

Je sais que normalement on dois séparer les deux partie (client : serveur) mais la seule solution que j'ai trouvé pour que mon code affiche mon tableau sans problème c'est (dans mon code aspx) :

<%@ Page Language ="VB" AutoEventWireup= "false" CodeFile="default.aspx.vb" Inherits="_Default" Debug="true" %>

<%@ Import Namespace="System.Xml" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script type="text/vb" >
       
    </script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <style type="text/css">

    </style>
   
</head>

    <form id="form1" runat="server">
   

       
       

   
   
        LinkButton
    
<% 
    Dim filename As String = \"C:\Documents and Settings\sinf\Bureau\Bureau2\items.xml\"
    Dim reader As XmlTextReader = Nothing
    Dim prof As Integer
    Dim pos As Integer = 1
    Dim tab(pos) As String
    pos = 0
    Dim ckb_id As CheckBox
  
    ' Stop
    ' Load the reader with the data file and ignore all white space nodes.        
    reader = New XmlTextReader(filename)
   
    Try
       
        'reader.WhitespaceHandling = WhitespaceHandling.All
      
        ' Parse the file and display each of the nodes.
        Response.Write(\"<TABLE border=1> selectionner |1 |2 |3 |4 |5 |6 |7 |8 |\")
      
        While reader.Read()
           
            prof = reader.Depth
            Select Case reader.NodeType

                Case XmlNodeType.Element
                   
                    If prof = 1 Then
                       
                        'lit l'attribut a la position 0
                        Response.Write(reader.GetAttribute(0) & \" \" & pos)
                        tab(pos) = reader.GetAttribute(0)
                        Response.Write(\"----
\")
                        'MsgBox(pos)
                        pos = pos + 1
                       
                        Dim id As String = change_id_ckb(pos)
                       
                        Response.Write(\"")%>
                       
                       
                           <%
                               Response.Write(ckb.ID)
                           'supprimer.ID = change_id_ckb(pos)
                          
                           Response.Write(", \")
                         
                          
                    End If
                Case XmlNodeType.Text
                       Response.Write(\"" & reader.Value & ", \")
                Case XmlNodeType.CDATA
                    ' Response.Write(\"<![CDATA[{0}]]>\" & reader.Value)
                Case XmlNodeType.ProcessingInstruction
                    ' Response.Write(\"<?{0} {1}?>\" & reader.Name & reader.Value)
                Case XmlNodeType.Comment
                    ' Response.Write(\"<!--{0}-->\" & reader.Value)
                Case XmlNodeType.XmlDeclaration
                    ' Response.Write(\"<?xml version='1.0'?>\")
                Case XmlNodeType.Document
                Case XmlNodeType.DocumentType
                    'Response.Write(\"<!DOCTYPE {0} [{1}]\" & reader.Name & reader.Value)
                Case XmlNodeType.EntityReference
                    'Response.Write(reader.Name)
                    'Case XmlNodeType.EndElement
                    '    Response.Write(\" \" & reader.Name & \"  \")
                Case XmlNodeType.EndElement
                    If prof = 1 Then
                        'Response.Write(reader.Depth & \" /\" & reader.Name & \"
  \")
                        Response.Write(\"
\" & \"\")
                    End If
                Case XmlNodeType.Whitespace
                       If prof = 3 Then
                           Response.Write(\"_, \")
                       End If

            End Select

        End While
        Response.Write("
")
    Finally
        If Not (reader Is Nothing) Then
            reader.Close()
           End If
         
    End Try
      
       For j As Integer = 0 To tab.Length - 1
           Response.Write(tab(j) & " ")
       Next
       'If ckb_id.Equals(True) Then
       '    Response.Write("Yes")
       'End If

    %>
   
</table>
</form>

</html>

Et dans ma page vb:

Option Strict On
Option Explicit On

Imports System
Imports System.IO
Imports System.Xml
Imports System.Data

'Reads an XML document
Public Class _Default
    Inherits System.Web.UI.Page
    Private Const filename As String = "C:\Documents and Settings\sinf\Bureau\Bureau2\items.xml"

    Public Function change_id_ckb(ByVal pos As Integer) As String
        Dim id As String
        id = "ckb_id" & pos
        Return id

        'MsgBox(ckb_id0.ID)
    End Function

    Public Sub coch()
        MsgBox("coché")
    End Sub

  

    'Protected Sub supprimer_click(ByVal sender As Object, ByVal e As System.EventArgs) Handles supprimer.Click
    '    Server.Transfer("~/Default.aspx")
    '    MsgBox(supprimer.Text)

    'End Sub

    Sub MesBoutons_Click(ByVal sender As Object, ByVal e As System.EventArgs)
        'Récupération du bouton ayant déclenché l'événement
        Dim Btn As Button
        Btn = CType(sender, Button)
        'Traitement

    End Sub

    Public Function compte(ByVal fichier As String) As Integer
        Dim doc As New XmlDocument
        doc.Load(fichier)

        Dim a As Integer = doc.DocumentElement.ChildNodes(1).ChildNodes.Count()
        Dim b As Integer = doc.DocumentElement.ChildNodes.Count

        Return a

    End Function

    Public Sub ImageButton2_Click()
        MsgBox("babou")
    End Sub

    Public Sub toto(ByVal toto As Integer)
        MsgBox("toto : " & toto)
    End Sub
End Class

Ce que je voulais faire, c'est par exemple appeler ma fonction toto("3") quand je clique sur mon bouton supprimer.

tu vois?

sandrine
Messages postés
2813
Date d'inscription
mardi 15 avril 2003
Statut
Membre
Dernière intervention
2 juin 2020
38
Je vais jeté un coup d'oeil à tout ça  
Messages postés
99
Date d'inscription
vendredi 23 mars 2007
Statut
Membre
Dernière intervention
27 mai 2009

Merci beaucoup.

Sandrine