2009-11-01 3 views
0

Pour chaque nœud dans treeview, son NavigateUrl est configuré pour appeler la fonction côté client qui charge la nouvelle page (page 2). Ce faisant, l'événement SelectedNodeChanged pour treeview ne se déclenche pas (page 1).Comment appeler le côté client et le code côté serveur pour chaque nœud sélectionné dans treeview?

[Server Side]

node.NavigateUrl = "javascript:RefreshWorkspaceHome();"; 

de RefreshWorkspaceHome(): soit charger une nouvelle page ou appelez doPostBack pour exécuter un code côté serveur pour la page 2. problème maintenant que l'événement SelectedNodeChanged ne se déclenche pas à la page 1.

Une idée?

Répondre

0

Si un nœud a une URL de navigation, lorsqu'un utilisateur clique dessus, le navigateur Web navigue vers l'URL spécifiée, sans passer par le post-retour qui aurait eu lieu à la place. Il le fait parce que le nœud est simplement rendu en hyperlien dans le HTML (un "tag"). Au lieu de cela, vous pouvez supprimer la propriété NavigateUrl des noeuds et rediriger vers la nouvelle page sur le serveur. Voici un exemple de ce que le code-behind de votre page 1 pourrait ressembler:

// This is the event handler for the TreeView's SelectedNodeChanged event 
protected void onSelectedNodeChanged(object sender, EventArgs e) 
{ 
    // Do server-side processing first 
    // ... 

    // Now do the redirect to page 2 
    Response.Redirect("page2.aspx"); 
} 
Questions connexes