Un petit coup de main?

cs_tortuedu74 Messages postés 99 Date d'inscription vendredi 23 mars 2007 Statut Membre Dernière intervention 27 mai 2009 - 11 mai 2009 à 10:57
cs_tortuedu74 Messages postés 99 Date d'inscription vendredi 23 mars 2007 Statut Membre Dernière intervention 27 mai 2009 - 11 mai 2009 à 17:04
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

Mayzz Messages postés 2813 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 2 juin 2020 28
11 mai 2009 à 14:35
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
cs_tortuedu74 Messages postés 99 Date d'inscription vendredi 23 mars 2007 Statut Membre Dernière intervention 27 mai 2009
11 mai 2009 à 14:54
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?
Mayzz Messages postés 2813 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 2 juin 2020 28
11 mai 2009 à 15:54
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
cs_tortuedu74 Messages postés 99 Date d'inscription vendredi 23 mars 2007 Statut Membre Dernière intervention 27 mai 2009
11 mai 2009 à 15:56
Tu peux me donner un exemple?

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Mayzz Messages postés 2813 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 2 juin 2020 28
11 mai 2009 à 16:06
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.
cs_tortuedu74 Messages postés 99 Date d'inscription vendredi 23 mars 2007 Statut Membre Dernière intervention 27 mai 2009
11 mai 2009 à 16:37
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
Mayzz Messages postés 2813 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 2 juin 2020 28
11 mai 2009 à 17:01
Je vais jeté un coup d'oeil à tout ça  
cs_tortuedu74 Messages postés 99 Date d'inscription vendredi 23 mars 2007 Statut Membre Dernière intervention 27 mai 2009
11 mai 2009 à 17:04
Merci beaucoup.

Sandrine
Rejoignez-nous