Comment faire : Sauvegarder manuellement après des événements spécifiques dans une page en utilisant Visual Basic .NET .aspx

Traductions disponibles Traductions disponibles
Numéro d'article: 328923 - Voir les produits auxquels s'applique cet article
Agrandir tout | Réduire tout

Sommaire

Résumé

Cet article étape par étape décrit comment configurer une page .aspx afin que le code HTML qui est généré sera publiée sur le serveur en réponse à des événements spécifiques d'un contrôle. À titre d'exemple, cet article utilise le contrôle Web contrôles TreeView Internet Explorer.

La propriété AutoPostBack

  • true . Lorsque AutoPostBack a la valeur True pour un contrôle, le contrôle peut publier sur le serveur en réponse aux événements que vous ne souhaitez pas provoquer une publication.

    Par exemple, la définition de AutoPostBack sur True sur le contrôle TreeView contrôle entraîne une publication en réponse à ces événements : événements onExpand ; onCollapse ; onCheck ; et onSelectedIndexChange.
  • false . En définissant AutoPostBack à False, vous valider sauvegarder manuellement en réponse à un événement spécifique.

Créer le code

Pour valider sauvegarder manuellement en réponse à l'événement onSelectedIndexChange, procédez comme suit.
  1. Créez une Application Web et ensuite placer le contrôle TreeView dans une page .aspx.
  2. Dans la page .aspx, définissez la propriété AutoPostBack du contrôle TreeView à false .
  3. Dans la propriété Nodes de TreeView , cliquez sur le bouton points de suspension (...) collecte et puis ajouter des n?uds et des enfants à la collection de n?uds TreeView .
  4. Gérer l'événement onload de la page HTML, puis appelez la fonction initTree . Cette fonction côté client sera générée dans l'événement Page_Load de la page .aspx.

    En mode HTML de la page .aspx, ajouter un gestionnaire pour l'événement onload à la balise body comme suit :
    <body onload="initTree()">
    					
  5. Ajoutez le code suivant à partir de cette fonction Page_Load à votre propre fonction Page_Load de la classe code-behind pour le fichier .aspx. strTreeName
    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim strTreeName As String = "TreeView1"
        Dim strRef As String = Page.GetPostBackEventReference(TreeView1)
        Dim strScript As String = "<script language=""JavaScript""> " & vbCrLf & _
            "<!-- " & vbCrLf & _
            "	function initTree() { " & vbCrLf & _
            "		" & strTreeName & ".onSelectedIndexChange = function() { " & vbCrLf & _
            "			if (event.oldTreeNodeIndex != event.newTreeNodeIndex) " & vbCrLf & _
            "				this.queueEvent('onselectedindexchange', event.oldTreeNodeIndex & ',' & event.newTreeNodeIndex); " & vbCrLf & _
            "			window.setTimeout('" & strRef.Replace("'", "\'") & "', 0, 'JavaScript'); " & vbCrLf & _
            "		} " & vbCrLf & _
            "	} " & vbCrLf & _
            "// --> " & vbCrLf & _
            "</script>"
    
        Page.RegisterClientScriptBlock("InitTree", strScript)
    End Sub
    					

Explication du code

Comment le code est développé

Le code fourni plus haut dans cet article a été développé à l'aide de la procédure suivante :
  • Une page .aspx a été développée et AutoPostBack pour le contrôle TreeView a la valeur True .
  • La page .aspx est affichée dans le navigateur Internet Explorer et la source a été enregistrée dans un fichier .HTML.
  • AutoPostBack pour le contrôle TreeView a été définie à false , et puis la page a été affichée à nouveau dans le navigateur.
  • Comparaison des deux fichiers et noter les différences ont aidé à produire le code fourni plus haut dans cet article.

Pour plus d'informations sur le code

  • Le code de la fonction Page_Load dans cet article affiche le code suivant dans le navigateur :
    <script language="JavaScript">
    <!-- 
        function initTree() { 
            TreeView1.onSelectedIndexChange = function() { 
                if (event.oldTreeNodeIndex != event.newTreeNodeIndex) 
                    this.queueEvent('onselectedindexchange', event.oldTreeNodeIndex & ',' & event.newTreeNodeIndex); 
    
                window.setTimeout('__doPostBack(\'TreeView1\',\'\')', 0, 'JavaScript'); 
            } 
        } 
    // -->
    </script>
    						
    la fonction initTree s'exécute lorsque la page HTML est chargée dans le navigateur. La fonction initTree substitue l'événement onSelectedIndexChange de TreeView1 afin que l'événement onSelectedIndexChange est ajouté à la file d'attente de la page et est ensuite publiée sur le serveur.
  • La première ligne de la nouvelle fonction onSelectedIndexChange ,
    if (event.oldTreeNodeIndex != event.newTreeNodeIndex) 
        this.queueEvent('onselectedindexchange', event.oldTreeNodeIndex + ',' + event.newTreeNodeIndex);
    						
    provient directement de la définition de la fonction d'origine comme défini dans le fichier .HTML enregistré.
  • Paramètre AutoPostBack pour le contrôle TreeView sur True affiche le code suivant dans le code HTML:
    window.setTimeout('__doPostBack(\'TreeView1\',\'\')', 0, 'JavaScript');
    						
    car le mécanisme de publication (dans ce cas, __doPostBack ) peut-être changer à l'avenir, générer la fonction sur le serveur en utilisant le code suivant :
    string strRef = Page.GetPostBackEventReference(TreeView1);
    					
    la référence d'événement de publication est ensuite utilisée dans Page_Load pour générer l'événement de publication sur le client.

Références

Pour plus d'informations, cliquez sur les numéros ci-dessous pour afficher les articles correspondants dans la base de connaissances Microsoft :
305140INFO : Introduction À ASP.NET

319441Comment : Ajouter dynamiquement n?uds à un contrôle WebBrowser TreeView à l'aide de Visual Basic .NET
Internet Explorer WebControls Reference
http://msdn.microsoft.com/en-us/library/ms528669(VS.85).aspx

Propriétés

Numéro d'article: 328923 - Dernière mise à jour: mercredi 25 juin 2003 - Version: 3.4
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft ASP.NET 1.0
  • Microsoft Visual Basic .NET 2002 Initiation
  • Microsoft ASP.NET 1.1
  • Microsoft Visual Basic .NET 2003 Initiation
Mots-clés : 
kbmt kbhowtomaster kbservercontrols KB328923 KbMtfr
Traduction automatique
IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d?articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d?avoir accès, dans votre propre langue, à l?ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s?exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s?efforce aussi continuellement de faire évoluer son système de traduction automatique.
La version anglaise de cet article est la suivante: 328923
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.

Envoyer des commentaires

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com