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 :

[VB.NET 2.0] Mise à jour contrôle depuis xml


Sujet :

ASP.NET

  1. #1
    Membre régulier Avatar de nicolb
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 184
    Points : 103
    Points
    103
    Par défaut [VB.NET 2.0] Mise à jour contrôle depuis xml
    Bonjour à tous !

    J'ai un soucis concernant la mise à jour d'un contrôle utilisateur après un click. Je m'explique:
    J'ai un contrôle utilisateur ("TextEdit1") que je mets à jours gràce à une de ses propriétés sur l'évènement page_load
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Protected sub Page_Load...
    Dim myRegister AsNew registerclubs()
    Dim myDefault(2) AsString
    myDefault = myRegister.clubDefault(IDClub, "coordonnees")
    TextBox1.Text = myDefault(0)
    TextEdit1.content = myDefault(1)
    
    La propriété "clubDefault" de la classe "registerclubs" sert à récupéré des données dans un fichier XML. Celà fonctionne bien au premier chargement de la page.
    Sur un click, je mets à jour ces mêmes données dans le fichier xml:
    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
    
    ProtectedSub Button1_Click(ByVal sender AsObject, ByVal e As System.EventArgs) Handles Button1.Click
    Dim myClubRegister AsNew registerclubs()
    'récupération des valeurs
    Dim _summary AsString = TextBox1.Text
    Dim _content AsString = TextEdit1.content
    Dim _titre AsString = "coordonnees"
    If myClubRegister.saveDescrip(IDClub, _titre, _summary, _content) Then
    Label1.Text = "Vos modifications ont été enregistrées avec succès<br />"
    Label1.Visible = True
    Else
    Label1.Text = "Impossible d'enregistrer vos modifications.<br />
    Label1.Visible = True
    EndIf
    EndSub
    
    La mise à jour s'effectue correctement dans le fichier.
    Mais lorsque la page se recharge après la mise à jours, la valeur de mon contrôle "TextEdit1" est l'ancienne valeur, bien que son actualisation soit effectuée depuis le fichier XML (correctement mis à jour lors du click) lors de l'évènement "Page_Load".

    Le problème ne vient pas du mécanisme de mise à jour, car lorsque je passe une chaîne de caractère simple à mon contrôle, la mise à jour s'effectue correctement ; et lorsque je ne mets pas en place de mise à jour au niveau du Page_load, le contrôle se vide après le click...

    Voici le code de la mise à jour du fichier XML (qui fonctionne):
    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
    
    'connexion au fichier xml
    Dim xmlDoc As XmlDocument = New XmlDocument()
    Dim myNavigator As XPathNavigator = xmlDoc.CreateNavigator()
    Dim myNode As XPathNodeIterator
    xmlDoc.Load(myXmlFile)
    'parcourir le fichier xml et récupérer les valeurs
    myNode = myNavigator.Select("config/menu/item/title[@id='" & title & "']")
    myNode.MoveNext() 'se déplacer à la racine
    myNode.Current.MoveToNext() '<summary>
    myNode.Current.SetValue(summary)
    myNode.Current.MoveToNext() '<content>
    myNode.Current.SetValue(content)
    xmlDoc.Save(myXmlFile)
    saveDescrip = True
    
    Bref, pour résumé, malgré la mise à jours du fichier XML sur le click du bouton, la mise à jour du contrôle sur l'évènement Page_Load prend en compte le fichier XML non modifié...
    Est-ce normal ?
    L'évènement "click" n'est-il pas sensé être exécuté en amont du "Page_Load" ?
    Merci d'avance !!!

  2. #2
    Membre régulier Avatar de nicolb
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 184
    Points : 103
    Points
    103
    Par défaut
    En fait j'ai exécuté ma page en mode débogage, et je me suis aperçu que le code situé dans la sub "Page_Load" est effectué avant le code situé dans l'évènement "click" de mon bouton, ce que je ne savais pas...

    Mon but est de modifier mon fichier xml puis de mettre à jour mon contrôle utilisateur "textEdit1", au moment du click sur le boutton.

    Sachant que la mise à jour visuelle de mon contrôle s'effectue lors de l'évènement "page_Load" de celui-ci (par la récupération d'une propriété "defaultValue"), comment puis-je mettre sa valeur à jour sur le click du boutton ?

    Voici le code de mise à jour de mon contrôle (la variable "_content" représente est mise à jour par la propriété "defaultValue") :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    
    ProtectedSub Page_Load(ByVal sender AsObject, ByVal e As System.EventArgs) HandlesMe.Load
    '//configuration du contrôle:
    initConfig()
    Dim _type As Type = Me.GetType
    Dim defaultValue AsString = "<script language='javascript'>function defaultValue(){if(navigator.appName.substring(0,3)=='Net'){" & _
    "var myDoc = document.getElementById('editeur').contentDocument;}else{" & _
    "var myDoc = window.frames['editeur'].document;}" & _
    "myDoc.body.innerHTML = '" & _content & "';}</script>"
    defaultV.Text = defaultValue
    defaultV.Visible = True...
    
    Si je tente de mettre à jours la propriété "defaultValue" du contrôle dans la sub "click", rien ne se passe car vraisemblablement cette propriété a déjà été mise à jour lors du Page_Load du contrôle...

  3. #3
    Membre régulier Avatar de nicolb
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 184
    Points : 103
    Points
    103
    Par défaut
    Je viens de trouver une solution simple:
    il me suffit de ne pas effectué la mise à jour du contrôle sur le PostBack !
    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
    
    ProtectedSub Page_Load(ByVal sender AsObject, ByVal e As System.EventArgs) HandlesMe.Load
    '//configuration du contr“le:
    IfNot IsPostBack Then
    initConfig()
    Dim _type As Type = Me.GetType
    Dim defaultValue AsString = "<script language='javascript'>function defaultValue(){if(navigator.appName.substring(0,3)=='Net'){" & _
    "var myDoc = document.getElementById('editeur').contentDocument;}else{" & _
    "var myDoc = window.frames['editeur'].document;}" & _
    "myDoc.body.innerHTML = '" & _content & "';}</script>"
    defaultV.Text = defaultValue
    defaultV.Visible = True
    Dim cs As ClientScriptManager = Page.ClientScript
    cs.RegisterStartupScript(_type, "k", "<script language='javascript'>var tArea; initEditor();</script>")
    EndIf
    EndSub
    
    A priori ça fonctionne
    Le fait d'essayer d'exposer le problème aide à mieux le comprendre !!!

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

Discussions similaires

  1. Mise à jour datagridview depuis différentes fenêtres
    Par Machine Head dans le forum Windows Forms
    Réponses: 8
    Dernier message: 29/07/2009, 10h40
  2. [AC-2003] mise à jour table depuis recordset d'une requete regroupement
    Par buzz73 dans le forum VBA Access
    Réponses: 5
    Dernier message: 27/07/2009, 12h12
  3. Mise à jour contrôle après suppression
    Par ThieBEN dans le forum IHM
    Réponses: 37
    Dernier message: 02/11/2007, 14h30
  4. Mise à jour table depuis autre table
    Par dual77 dans le forum Requêtes
    Réponses: 9
    Dernier message: 04/01/2007, 21h01
  5. [ASP.NET] Conséquence de mises à jour windows
    Par nancy54 dans le forum Autres Logiciels
    Réponses: 8
    Dernier message: 20/12/2005, 17h33

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