Appeler fonction vb.net dans href ou autre solution

cs_tortuedu74 Messages postés 99 Date d'inscription vendredi 23 mars 2007 Statut Membre Dernière intervention 27 mai 2009 - 6 mai 2009 à 14:37
Mayzz Messages postés 2813 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 2 juin 2020 - 11 mai 2009 à 13:30
Bonjour,

J'ai un code vb.net:

While reader.Read()

                prof = reader.Depth
                Select Case reader.NodeType

                    Case XmlNodeType.Element
                        If prof = 1 Then
                            Response.Write("<TR>")
                            Response.Write("<TD>

'ou'
</TD>")
                        End If
                    Case XmlNodeType.Text
[...]

et une procédure:

 Protected Sub sup_Click(ByVal sender As Object, ByVal e As System.EventArgs)
        MsgBox("sup")
    End Sub

tout est dans la même page, je voudrais que quand je clic sur un bouton, je puisse appeler ma procédure, quelqu'un peut m'aider SVP?

Merci

9 réponses

Mayzz Messages postés 2813 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 2 juin 2020 28
6 mai 2009 à 17:10
Salut,

il faut simplement nommer ta procédure :

Private Sub MaProcedure()

While reader.Read()

                prof = reader.Depth
                Select Case reader.NodeType

                    Case XmlNodeType.Element
                        If prof = 1 Then
                            Response.Write("<TR>")
                            Response.Write("<TD>

'ou'
</TD>")
                        End If
                    Case XmlNodeType.Text
[Le reste de ton code...]
End Sub

Et ensuite dans l'évenement click de ton bouton tu appelle celle-ci

Protected Sub sup_Click(ByVal sender As Object, ByVal e As System.EventArgs)
        Call MaProcedure
End Sub

Si ta procédure doit retourné une valeur alors poste la entièrement et je te dirais la manip a suivre

@+
cs_tortuedu74 Messages postés 99 Date d'inscription vendredi 23 mars 2007 Statut Membre Dernière intervention 27 mai 2009
6 mai 2009 à 17:31
ah ben oui, je n'y avait pas pensé, je tente ça demain, et te tiens au courant.

En tout cas merci beaucoup.

Sandrine
cs_tortuedu74 Messages postés 99 Date d'inscription vendredi 23 mars 2007 Statut Membre Dernière intervention 27 mai 2009
7 mai 2009 à 09:54
alors en fait je te donne mon code:



<%@ 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">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</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 = 0
    ' Stop

    Try
        ' Load the reader with the data file and ignore all white space nodes.        
        reader = New XmlTextReader(filename)
        '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
                        pos = pos + 1
                        Response.Write(\"----
\")
                        'MsgBox(pos)
         
                        Response.Write(\"")%>
                       <%
                       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
    %>
</table>
</form>

</html>

et mon code vb:

 Protected Sub supprimer_click(ByVal sender As Object, ByVal e As System.EventArgs) Handles supprimer.Click
        If ckb1.Equals(True) Then
            MsgBox("essai")
        End If

    End Sub

tu peux m'aider a comprendre comment je peux :
1/ prendre ne compte l'appuie de mon bouton supprimer que si la checkbox est cochée .
2/ changer l'ID de la ckb à chaque nouvelle TD
3/ repérer le numéro de l'enregistrement xml afin de pouvoir le supprimer quand on appuie sur le bouton supprimer?

Merci

Sandrine
Mayzz Messages postés 2813 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 2 juin 2020 28
7 mai 2009 à 11:00
Ah oué!


C'est bien ce qui me semblais à première vue, c'est un code de page asp.net ^^


Bon, ça change tout !

Donc voila le développement d'asp.net est un mélange entre le développemnt d'application windows et le dévelopement web asp (html, script, CSS, etc...)

Le problème c'est que le code qui se trouve dans ta form (Code behind) s'éxécute sur le serveur, et le code de la page aspx (Script) coté client, l'un n'est donc pas accessible à l'autre en téhorie.

Les contrôles HTML publiés par ton post (Response.Write) ne son pas acccessible à ton formulaire, mais il le sont via des scipts (vbcript ou javascript), sinon il faut que tu les remplace par des contrôles asp.net (du moins ton CheckBox)

Remplace :

<asp:CheckBox
ID="CheckBox1"
runat="server"
/>

Par:




<





input




type


='checkbox'




name


='ckb'




id


='ckb1'/>


et dans ton code behind :

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

If Ckb1.Checked
Then[TON CODE...]

'Si tu veu changer l'id de ton checkbox:Ckb1.ID =

"tonid"

'En suite tu l'appel par:

Dim Chk
As CheckBox = FindControl(
"tonid")

If
Not Chk
Is
Nothing
Then

If Chk.Checked
Then

'[TonCode]'

End
If

End
If

End
Sub

Autres choses:

1\Ton code est brouillon, il y a des parties de code behind balisés en plein millieu de ta page asp j'ai du tout remettre en forme pour comprendre, je te conseille de revoir tout ça pour y voir plus claire...

2\Je ne sais pas trop en quoi consiste ton code, apparemment il écrit des tables su ton form, mais tu peu géré ca d'une autre manière...

Bon courrage tiens moi au courrant, si tu as un souci, envoi moi la source de ton site à contact@mayzzsoft.com

@+ 

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

Posez votre question
cs_tortuedu74 Messages postés 99 Date d'inscription vendredi 23 mars 2007 Statut Membre Dernière intervention 27 mai 2009
7 mai 2009 à 14:21
Oui je me suis bien redu compte que j'avais coder un peu salement, je vais m'en occuper pour que ce soit plus propre.

Pour info, mon code lit des données XML (dans un .xml) et les organisent de manière a former un tableau dynamique.
La ce n'est que la page de test car en réalité, mon code définitif est modifier que quand je suis sûre du code que j'ai tester ici car sinon je ne m'y retrouve plus , il y a beaucoup de pages et de fonctions.

En tout cas je te remercie beaucoup, je garde ton adresse de côté en cas de besoin.

Encore un grand merci.

Sandrine
Mayzz Messages postés 2813 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 2 juin 2020 28
7 mai 2009 à 17:30
De rien,


Je ne fait que retransmettre ce que l'on ma donné ici,

Pour ton code j'avais vu à peu près mais ce que je voulais dire c'est que je
n'en connaissais pas l'utilisation finale,

dans tous les cas si tu stock des données dans une table pour les réafficher
dynamiquement, je te conseil vivement les bases de données,

Visual Studio (Ou Visual Web Developper) propose des assistants pour générer
les requêtes de bases (même un peu plus avancés),

des contrôles liés au données paramétrables à souhait, c'est simples pour des
pages basiques tu n'as peu ou pas de code behind à saisir,

Avant avec l'asp, et le vbscript tu aurais passé 15j à faire un truc réalisable
en 5mn avec la technologie .Net. C'est formidable !


Sur ce bon dev @+
cs_tortuedu74 Messages postés 99 Date d'inscription vendredi 23 mars 2007 Statut Membre Dernière intervention 27 mai 2009
11 mai 2009 à 08:51
Le truc c'est que la base de donnée actuelle est une BDD Firebird et que Visual Studio ne l'attaque pas.
L'entreprise pour laquelle je travaille ne veut pas créer une autre BDD pour l'instant.
Donc mes instructions sont: utiliser un XML, c'est pour ça.

Voila.

Encore Merci.
cs_tortuedu74 Messages postés 99 Date d'inscription vendredi 23 mars 2007 Statut Membre Dernière intervention 27 mai 2009
11 mai 2009 à 09:11
Par contre, quand  je saisie:

Dim Chk
As CheckBox = FindControl(
"tonid")

il y a un message d'erreur:

Option Strict On interdit les conversions implicites de 'System.Web.UI.Control'
en 'System.Web.UI.WebControls.CheckBox'.

Il y a une solution?

Merci
Mayzz Messages postés 2813 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 2 juin 2020 28
11 mai 2009 à 13:30
Bonjour,

Pourquoi fais-tu un Findcontrol depuis ton formulaire ? Appel simplement le contrôle.
Pour ta base Firebird, je dit surement des bétises, mais le XmlDataSource ne prend pas en charge ce type de db ?? (à essayer ce na coute rien)

@+ Mayzz
Rejoignez-nous