Bonjour
Sur un clic Menu je voudrais afficher une page sur une nouvelle fenetre,
avec le code ci-dessous, il me faut cliquer deux fois pour obtenir cela,
le premier clic affiche la page en remplacement de la première.
Pouvez-vous me dire ou est l'erreur
Protected Sub Menu1_MenuItemClick(ByVal sender As Object, _
ByVal e As System.Web.UI.WebControls.MenuEventArgs) _
Handles Menu1.MenuItemClick
Session("NewPage") = "~/FrmNewPage.aspx"
Menu1.Target = "_blank"
Menu1.SelectedItem.NavigateUrl = Session("NewPage")
Menu1.SelectedItem.Target = "_blank"
End Sub
Merci pour vos réponses
Cordialement
Jean Claude
Bonjour
Sur un clic Menu je voudrais afficher une page sur une nouvelle fenetre,
avec le code ci-dessous, il me faut cliquer deux fois pour obtenir cela,
le premier clic affiche la page en remplacement de la première.
Pouvez-vous me dire ou est l'erreur
Protected Sub Menu1_MenuItemClick(ByVal sender As Object, _
ByVal e As System.Web.UI.WebControls.MenuEventArgs) _
Handles Menu1.MenuItemClick
Session("NewPage") = "~/FrmNewPage.aspx"
Menu1.Target = "_blank"
Menu1.SelectedItem.NavigateUrl = Session("NewPage")
Menu1.SelectedItem.Target = "_blank"
End Sub
Merci pour vos réponses
Cordialement
Jean Claude
Bonjour
Sur un clic Menu je voudrais afficher une page sur une nouvelle fenetre,
avec le code ci-dessous, il me faut cliquer deux fois pour obtenir cela,
le premier clic affiche la page en remplacement de la première.
Pouvez-vous me dire ou est l'erreur
Protected Sub Menu1_MenuItemClick(ByVal sender As Object, _
ByVal e As System.Web.UI.WebControls.MenuEventArgs) _
Handles Menu1.MenuItemClick
Session("NewPage") = "~/FrmNewPage.aspx"
Menu1.Target = "_blank"
Menu1.SelectedItem.NavigateUrl = Session("NewPage")
Menu1.SelectedItem.Target = "_blank"
End Sub
Merci pour vos réponses
Cordialement
Jean Claude
Problème de logique. La modification de l'objet menu aura pour effet de
dire comment le menu sera généré dans la NOUVELLE page actuellement en
cours de construction d'où la nécessité de cliquer deux fois pour obtenir
le comportement voulu.
Bien voir le cycle de fonctionnement : le code .NET tourne sur le serveur
ce qui génère du code HTML qui repostera des demandes vers le serveur sur
demande de l'utilisateur. Ici modifier le code HTML de la page *en cours
de génération* ne sert à rien. C'est le code HTML de la page *précédente*
qui a été utilisé pour relancer une demande et ce code HTML n'incluant pas
le target blank on n'ouvre effectivement pas la fenêtre dans une nouvelle
fenêtre ce coup-ci... Selon la logique de fonctionnement voulue (je vois
que le nom de la page est également en dur ??) le plus simple serait sans
doute de mettre les "targets" (de même que le NavigateUrl ?) dans les
balises asp:menuitem concernées ce qui pourrait éventuellement rendre
totalement inutile de gérer cet évènement.
--
Patrice
"Jean Claude" a écrit dans le message de
news: 478235bf$0$845$Bonjour
Sur un clic Menu je voudrais afficher une page sur une nouvelle fenetre,
avec le code ci-dessous, il me faut cliquer deux fois pour obtenir cela,
le premier clic affiche la page en remplacement de la première.
Pouvez-vous me dire ou est l'erreur
Protected Sub Menu1_MenuItemClick(ByVal sender As Object, _
ByVal e As System.Web.UI.WebControls.MenuEventArgs) _
Handles Menu1.MenuItemClick
Session("NewPage") = "~/FrmNewPage.aspx"
Menu1.Target = "_blank"
Menu1.SelectedItem.NavigateUrl = Session("NewPage")
Menu1.SelectedItem.Target = "_blank"
End Sub
Merci pour vos réponses
Cordialement
Jean Claude
Problème de logique. La modification de l'objet menu aura pour effet de
dire comment le menu sera généré dans la NOUVELLE page actuellement en
cours de construction d'où la nécessité de cliquer deux fois pour obtenir
le comportement voulu.
Bien voir le cycle de fonctionnement : le code .NET tourne sur le serveur
ce qui génère du code HTML qui repostera des demandes vers le serveur sur
demande de l'utilisateur. Ici modifier le code HTML de la page *en cours
de génération* ne sert à rien. C'est le code HTML de la page *précédente*
qui a été utilisé pour relancer une demande et ce code HTML n'incluant pas
le target blank on n'ouvre effectivement pas la fenêtre dans une nouvelle
fenêtre ce coup-ci... Selon la logique de fonctionnement voulue (je vois
que le nom de la page est également en dur ??) le plus simple serait sans
doute de mettre les "targets" (de même que le NavigateUrl ?) dans les
balises asp:menuitem concernées ce qui pourrait éventuellement rendre
totalement inutile de gérer cet évènement.
--
Patrice
"Jean Claude" <jean-claude.mansion@wanadoo.fr> a écrit dans le message de
news: 478235bf$0$845$ba4acef3@news.orange.fr...
Bonjour
Sur un clic Menu je voudrais afficher une page sur une nouvelle fenetre,
avec le code ci-dessous, il me faut cliquer deux fois pour obtenir cela,
le premier clic affiche la page en remplacement de la première.
Pouvez-vous me dire ou est l'erreur
Protected Sub Menu1_MenuItemClick(ByVal sender As Object, _
ByVal e As System.Web.UI.WebControls.MenuEventArgs) _
Handles Menu1.MenuItemClick
Session("NewPage") = "~/FrmNewPage.aspx"
Menu1.Target = "_blank"
Menu1.SelectedItem.NavigateUrl = Session("NewPage")
Menu1.SelectedItem.Target = "_blank"
End Sub
Merci pour vos réponses
Cordialement
Jean Claude
Problème de logique. La modification de l'objet menu aura pour effet de
dire comment le menu sera généré dans la NOUVELLE page actuellement en
cours de construction d'où la nécessité de cliquer deux fois pour obtenir
le comportement voulu.
Bien voir le cycle de fonctionnement : le code .NET tourne sur le serveur
ce qui génère du code HTML qui repostera des demandes vers le serveur sur
demande de l'utilisateur. Ici modifier le code HTML de la page *en cours
de génération* ne sert à rien. C'est le code HTML de la page *précédente*
qui a été utilisé pour relancer une demande et ce code HTML n'incluant pas
le target blank on n'ouvre effectivement pas la fenêtre dans une nouvelle
fenêtre ce coup-ci... Selon la logique de fonctionnement voulue (je vois
que le nom de la page est également en dur ??) le plus simple serait sans
doute de mettre les "targets" (de même que le NavigateUrl ?) dans les
balises asp:menuitem concernées ce qui pourrait éventuellement rendre
totalement inutile de gérer cet évènement.
--
Patrice
"Jean Claude" a écrit dans le message de
news: 478235bf$0$845$Bonjour
Sur un clic Menu je voudrais afficher une page sur une nouvelle fenetre,
avec le code ci-dessous, il me faut cliquer deux fois pour obtenir cela,
le premier clic affiche la page en remplacement de la première.
Pouvez-vous me dire ou est l'erreur
Protected Sub Menu1_MenuItemClick(ByVal sender As Object, _
ByVal e As System.Web.UI.WebControls.MenuEventArgs) _
Handles Menu1.MenuItemClick
Session("NewPage") = "~/FrmNewPage.aspx"
Menu1.Target = "_blank"
Menu1.SelectedItem.NavigateUrl = Session("NewPage")
Menu1.SelectedItem.Target = "_blank"
End Sub
Merci pour vos réponses
Cordialement
Jean Claude
Bonjour Patrice
je ne peux pas mettre les "targets" (de même que le NavigateUrl ?) dans
les balises
asp:menuitem concernées car Session("NewPage") est variable, je l'ai mis
en dur pour tester le menu
Cordialement
JClaude
"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de news:Problème de logique. La modification de l'objet menu aura pour effet de
dire comment le menu sera généré dans la NOUVELLE page actuellement en
cours de construction d'où la nécessité de cliquer deux fois pour obtenir
le comportement voulu.
Bien voir le cycle de fonctionnement : le code .NET tourne sur le serveur
ce qui génère du code HTML qui repostera des demandes vers le serveur sur
demande de l'utilisateur. Ici modifier le code HTML de la page *en cours
de génération* ne sert à rien. C'est le code HTML de la page *précédente*
qui a été utilisé pour relancer une demande et ce code HTML n'incluant
pas le target blank on n'ouvre effectivement pas la fenêtre dans une
nouvelle fenêtre ce coup-ci... Selon la logique de fonctionnement voulue
(je vois que le nom de la page est également en dur ??) le plus simple
serait sans doute de mettre les "targets" (de même que le NavigateUrl ?)
dans les balises asp:menuitem concernées ce qui pourrait éventuellement
rendre totalement inutile de gérer cet évènement.
--
Patrice
"Jean Claude" a écrit dans le message de
news: 478235bf$0$845$Bonjour
Sur un clic Menu je voudrais afficher une page sur une nouvelle fenetre,
avec le code ci-dessous, il me faut cliquer deux fois pour obtenir cela,
le premier clic affiche la page en remplacement de la première.
Pouvez-vous me dire ou est l'erreur
Protected Sub Menu1_MenuItemClick(ByVal sender As Object, _
ByVal e As System.Web.UI.WebControls.MenuEventArgs) _
Handles Menu1.MenuItemClick
Session("NewPage") = "~/FrmNewPage.aspx"
Menu1.Target = "_blank"
Menu1.SelectedItem.NavigateUrl = Session("NewPage")
Menu1.SelectedItem.Target = "_blank"
End Sub
Merci pour vos réponses
Cordialement
Jean Claude
Bonjour Patrice
je ne peux pas mettre les "targets" (de même que le NavigateUrl ?) dans
les balises
asp:menuitem concernées car Session("NewPage") est variable, je l'ai mis
en dur pour tester le menu
Cordialement
JClaude
"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de news:
eMHnOuTUIHA.5132@TK2MSFTNGP02.phx.gbl...
Problème de logique. La modification de l'objet menu aura pour effet de
dire comment le menu sera généré dans la NOUVELLE page actuellement en
cours de construction d'où la nécessité de cliquer deux fois pour obtenir
le comportement voulu.
Bien voir le cycle de fonctionnement : le code .NET tourne sur le serveur
ce qui génère du code HTML qui repostera des demandes vers le serveur sur
demande de l'utilisateur. Ici modifier le code HTML de la page *en cours
de génération* ne sert à rien. C'est le code HTML de la page *précédente*
qui a été utilisé pour relancer une demande et ce code HTML n'incluant
pas le target blank on n'ouvre effectivement pas la fenêtre dans une
nouvelle fenêtre ce coup-ci... Selon la logique de fonctionnement voulue
(je vois que le nom de la page est également en dur ??) le plus simple
serait sans doute de mettre les "targets" (de même que le NavigateUrl ?)
dans les balises asp:menuitem concernées ce qui pourrait éventuellement
rendre totalement inutile de gérer cet évènement.
--
Patrice
"Jean Claude" <jean-claude.mansion@wanadoo.fr> a écrit dans le message de
news: 478235bf$0$845$ba4acef3@news.orange.fr...
Bonjour
Sur un clic Menu je voudrais afficher une page sur une nouvelle fenetre,
avec le code ci-dessous, il me faut cliquer deux fois pour obtenir cela,
le premier clic affiche la page en remplacement de la première.
Pouvez-vous me dire ou est l'erreur
Protected Sub Menu1_MenuItemClick(ByVal sender As Object, _
ByVal e As System.Web.UI.WebControls.MenuEventArgs) _
Handles Menu1.MenuItemClick
Session("NewPage") = "~/FrmNewPage.aspx"
Menu1.Target = "_blank"
Menu1.SelectedItem.NavigateUrl = Session("NewPage")
Menu1.SelectedItem.Target = "_blank"
End Sub
Merci pour vos réponses
Cordialement
Jean Claude
Bonjour Patrice
je ne peux pas mettre les "targets" (de même que le NavigateUrl ?) dans
les balises
asp:menuitem concernées car Session("NewPage") est variable, je l'ai mis
en dur pour tester le menu
Cordialement
JClaude
"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de news:Problème de logique. La modification de l'objet menu aura pour effet de
dire comment le menu sera généré dans la NOUVELLE page actuellement en
cours de construction d'où la nécessité de cliquer deux fois pour obtenir
le comportement voulu.
Bien voir le cycle de fonctionnement : le code .NET tourne sur le serveur
ce qui génère du code HTML qui repostera des demandes vers le serveur sur
demande de l'utilisateur. Ici modifier le code HTML de la page *en cours
de génération* ne sert à rien. C'est le code HTML de la page *précédente*
qui a été utilisé pour relancer une demande et ce code HTML n'incluant
pas le target blank on n'ouvre effectivement pas la fenêtre dans une
nouvelle fenêtre ce coup-ci... Selon la logique de fonctionnement voulue
(je vois que le nom de la page est également en dur ??) le plus simple
serait sans doute de mettre les "targets" (de même que le NavigateUrl ?)
dans les balises asp:menuitem concernées ce qui pourrait éventuellement
rendre totalement inutile de gérer cet évènement.
--
Patrice
"Jean Claude" a écrit dans le message de
news: 478235bf$0$845$Bonjour
Sur un clic Menu je voudrais afficher une page sur une nouvelle fenetre,
avec le code ci-dessous, il me faut cliquer deux fois pour obtenir cela,
le premier clic affiche la page en remplacement de la première.
Pouvez-vous me dire ou est l'erreur
Protected Sub Menu1_MenuItemClick(ByVal sender As Object, _
ByVal e As System.Web.UI.WebControls.MenuEventArgs) _
Handles Menu1.MenuItemClick
Session("NewPage") = "~/FrmNewPage.aspx"
Menu1.Target = "_blank"
Menu1.SelectedItem.NavigateUrl = Session("NewPage")
Menu1.SelectedItem.Target = "_blank"
End Sub
Merci pour vos réponses
Cordialement
Jean Claude
Pour l'instant, je ne comprends pas le principe de fonctionnement de ce
menu.
Le menu est construit dynamiquement ? C'est ce que tu veux dire ? Même
dans ce cas, rien n'empêche de mettre une propriété target sur chaque
menuitem créé dynamiquement. De même, la valeur de Session("NewPage")
pourrait sans doute être utilisée pour *construire* le menu plutôt que
lors de la réaction au clic (je vois mal d'ailleurs comment le menu
fonctionne, le session("newpage") étant toujours une valeur unique donc
quel que soit l'option de menu cliqué l'utilisateur ira toujours sur la
même page ???) Si en réaction au clic tu prévois ensuite de tester quel
est l'élément cliqué pour aller sur telle ou telle url, il est peut-être
aussi simple de définir ces urls lors de la création dynamique du menu...
Quelque chose comme :
Protected Sub Page_Load(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.Load
For i As Integer = 0 To 4
Dim mi As New MenuItem
mi.Text = "Page " & i.ToString
mi.NavigateUrl = "page" & i.ToString & ".aspx" ' Url calculée
dynamiquement, cela pourrait être un tbalau ou quoi que ce soit d'autre
mi.Target = "_blank"
Menu1.Items.Add(mi)
Next
End Sub
Lorque la page HTML est rendue la première fois, toutes les informations
nécessaires à la navigation vers la page suivante sont connues sans avoir
à gérer l'évènement concernant le clic (accessoirement le groupe ASP.NET
serait peut-être plus spécifique à ce problème).
--
Patrice
"Jean Claude" a écrit dans le message de
news: 47824a01$0$887$Bonjour Patrice
je ne peux pas mettre les "targets" (de même que le NavigateUrl ?) dans
les balises
asp:menuitem concernées car Session("NewPage") est variable, je l'ai mis
en dur pour tester le menu
Cordialement
JClaude
"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de news:Problème de logique. La modification de l'objet menu aura pour effet de
dire comment le menu sera généré dans la NOUVELLE page actuellement en
cours de construction d'où la nécessité de cliquer deux fois pour
obtenir le comportement voulu.
Bien voir le cycle de fonctionnement : le code .NET tourne sur le
serveur ce qui génère du code HTML qui repostera des demandes vers le
serveur sur demande de l'utilisateur. Ici modifier le code HTML de la
page *en cours de génération* ne sert à rien. C'est le code HTML de la
page *précédente* qui a été utilisé pour relancer une demande et ce code
HTML n'incluant pas le target blank on n'ouvre effectivement pas la
fenêtre dans une nouvelle fenêtre ce coup-ci... Selon la logique de
fonctionnement voulue (je vois que le nom de la page est également en
dur ??) le plus simple serait sans doute de mettre les "targets" (de
même que le NavigateUrl ?) dans les balises asp:menuitem concernées ce
qui pourrait éventuellement rendre totalement inutile de gérer cet
évènement.
--
Patrice
"Jean Claude" a écrit dans le message
de news: 478235bf$0$845$Bonjour
Sur un clic Menu je voudrais afficher une page sur une nouvelle
fenetre, avec le code ci-dessous, il me faut cliquer deux fois pour
obtenir cela, le premier clic affiche la page en remplacement de la
première. Pouvez-vous me dire ou est l'erreur
Protected Sub Menu1_MenuItemClick(ByVal sender As Object, _
ByVal e As System.Web.UI.WebControls.MenuEventArgs) _
Handles Menu1.MenuItemClick
Session("NewPage") = "~/FrmNewPage.aspx"
Menu1.Target = "_blank"
Menu1.SelectedItem.NavigateUrl = Session("NewPage")
Menu1.SelectedItem.Target = "_blank"
End Sub
Merci pour vos réponses
Cordialement
Jean Claude
Pour l'instant, je ne comprends pas le principe de fonctionnement de ce
menu.
Le menu est construit dynamiquement ? C'est ce que tu veux dire ? Même
dans ce cas, rien n'empêche de mettre une propriété target sur chaque
menuitem créé dynamiquement. De même, la valeur de Session("NewPage")
pourrait sans doute être utilisée pour *construire* le menu plutôt que
lors de la réaction au clic (je vois mal d'ailleurs comment le menu
fonctionne, le session("newpage") étant toujours une valeur unique donc
quel que soit l'option de menu cliqué l'utilisateur ira toujours sur la
même page ???) Si en réaction au clic tu prévois ensuite de tester quel
est l'élément cliqué pour aller sur telle ou telle url, il est peut-être
aussi simple de définir ces urls lors de la création dynamique du menu...
Quelque chose comme :
Protected Sub Page_Load(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.Load
For i As Integer = 0 To 4
Dim mi As New MenuItem
mi.Text = "Page " & i.ToString
mi.NavigateUrl = "page" & i.ToString & ".aspx" ' Url calculée
dynamiquement, cela pourrait être un tbalau ou quoi que ce soit d'autre
mi.Target = "_blank"
Menu1.Items.Add(mi)
Next
End Sub
Lorque la page HTML est rendue la première fois, toutes les informations
nécessaires à la navigation vers la page suivante sont connues sans avoir
à gérer l'évènement concernant le clic (accessoirement le groupe ASP.NET
serait peut-être plus spécifique à ce problème).
--
Patrice
"Jean Claude" <jean-claude.mansion@wanadoo.fr> a écrit dans le message de
news: 47824a01$0$887$ba4acef3@news.orange.fr...
Bonjour Patrice
je ne peux pas mettre les "targets" (de même que le NavigateUrl ?) dans
les balises
asp:menuitem concernées car Session("NewPage") est variable, je l'ai mis
en dur pour tester le menu
Cordialement
JClaude
"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de news:
eMHnOuTUIHA.5132@TK2MSFTNGP02.phx.gbl...
Problème de logique. La modification de l'objet menu aura pour effet de
dire comment le menu sera généré dans la NOUVELLE page actuellement en
cours de construction d'où la nécessité de cliquer deux fois pour
obtenir le comportement voulu.
Bien voir le cycle de fonctionnement : le code .NET tourne sur le
serveur ce qui génère du code HTML qui repostera des demandes vers le
serveur sur demande de l'utilisateur. Ici modifier le code HTML de la
page *en cours de génération* ne sert à rien. C'est le code HTML de la
page *précédente* qui a été utilisé pour relancer une demande et ce code
HTML n'incluant pas le target blank on n'ouvre effectivement pas la
fenêtre dans une nouvelle fenêtre ce coup-ci... Selon la logique de
fonctionnement voulue (je vois que le nom de la page est également en
dur ??) le plus simple serait sans doute de mettre les "targets" (de
même que le NavigateUrl ?) dans les balises asp:menuitem concernées ce
qui pourrait éventuellement rendre totalement inutile de gérer cet
évènement.
--
Patrice
"Jean Claude" <jean-claude.mansion@wanadoo.fr> a écrit dans le message
de news: 478235bf$0$845$ba4acef3@news.orange.fr...
Bonjour
Sur un clic Menu je voudrais afficher une page sur une nouvelle
fenetre, avec le code ci-dessous, il me faut cliquer deux fois pour
obtenir cela, le premier clic affiche la page en remplacement de la
première. Pouvez-vous me dire ou est l'erreur
Protected Sub Menu1_MenuItemClick(ByVal sender As Object, _
ByVal e As System.Web.UI.WebControls.MenuEventArgs) _
Handles Menu1.MenuItemClick
Session("NewPage") = "~/FrmNewPage.aspx"
Menu1.Target = "_blank"
Menu1.SelectedItem.NavigateUrl = Session("NewPage")
Menu1.SelectedItem.Target = "_blank"
End Sub
Merci pour vos réponses
Cordialement
Jean Claude
Pour l'instant, je ne comprends pas le principe de fonctionnement de ce
menu.
Le menu est construit dynamiquement ? C'est ce que tu veux dire ? Même
dans ce cas, rien n'empêche de mettre une propriété target sur chaque
menuitem créé dynamiquement. De même, la valeur de Session("NewPage")
pourrait sans doute être utilisée pour *construire* le menu plutôt que
lors de la réaction au clic (je vois mal d'ailleurs comment le menu
fonctionne, le session("newpage") étant toujours une valeur unique donc
quel que soit l'option de menu cliqué l'utilisateur ira toujours sur la
même page ???) Si en réaction au clic tu prévois ensuite de tester quel
est l'élément cliqué pour aller sur telle ou telle url, il est peut-être
aussi simple de définir ces urls lors de la création dynamique du menu...
Quelque chose comme :
Protected Sub Page_Load(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.Load
For i As Integer = 0 To 4
Dim mi As New MenuItem
mi.Text = "Page " & i.ToString
mi.NavigateUrl = "page" & i.ToString & ".aspx" ' Url calculée
dynamiquement, cela pourrait être un tbalau ou quoi que ce soit d'autre
mi.Target = "_blank"
Menu1.Items.Add(mi)
Next
End Sub
Lorque la page HTML est rendue la première fois, toutes les informations
nécessaires à la navigation vers la page suivante sont connues sans avoir
à gérer l'évènement concernant le clic (accessoirement le groupe ASP.NET
serait peut-être plus spécifique à ce problème).
--
Patrice
"Jean Claude" a écrit dans le message de
news: 47824a01$0$887$Bonjour Patrice
je ne peux pas mettre les "targets" (de même que le NavigateUrl ?) dans
les balises
asp:menuitem concernées car Session("NewPage") est variable, je l'ai mis
en dur pour tester le menu
Cordialement
JClaude
"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de news:Problème de logique. La modification de l'objet menu aura pour effet de
dire comment le menu sera généré dans la NOUVELLE page actuellement en
cours de construction d'où la nécessité de cliquer deux fois pour
obtenir le comportement voulu.
Bien voir le cycle de fonctionnement : le code .NET tourne sur le
serveur ce qui génère du code HTML qui repostera des demandes vers le
serveur sur demande de l'utilisateur. Ici modifier le code HTML de la
page *en cours de génération* ne sert à rien. C'est le code HTML de la
page *précédente* qui a été utilisé pour relancer une demande et ce code
HTML n'incluant pas le target blank on n'ouvre effectivement pas la
fenêtre dans une nouvelle fenêtre ce coup-ci... Selon la logique de
fonctionnement voulue (je vois que le nom de la page est également en
dur ??) le plus simple serait sans doute de mettre les "targets" (de
même que le NavigateUrl ?) dans les balises asp:menuitem concernées ce
qui pourrait éventuellement rendre totalement inutile de gérer cet
évènement.
--
Patrice
"Jean Claude" a écrit dans le message
de news: 478235bf$0$845$Bonjour
Sur un clic Menu je voudrais afficher une page sur une nouvelle
fenetre, avec le code ci-dessous, il me faut cliquer deux fois pour
obtenir cela, le premier clic affiche la page en remplacement de la
première. Pouvez-vous me dire ou est l'erreur
Protected Sub Menu1_MenuItemClick(ByVal sender As Object, _
ByVal e As System.Web.UI.WebControls.MenuEventArgs) _
Handles Menu1.MenuItemClick
Session("NewPage") = "~/FrmNewPage.aspx"
Menu1.Target = "_blank"
Menu1.SelectedItem.NavigateUrl = Session("NewPage")
Menu1.SelectedItem.Target = "_blank"
End Sub
Merci pour vos réponses
Cordialement
Jean Claude
Bonjour Patrice
Non le menu n'est pas construit dynamiquement (pour le test j'ai mis qu'un
Item, mais il y en aura plusieurs, c'est cet Item qui me pose problème).
le clic sur le menu selon l'internaute affiche une page type definie par
session("page"), et il y a trois possibilités de page type, et toujours
selon l'internaute le remplissage de la page se fait dynamiquement par une
requete sur une base de données Access.
Cordialement
J Claude
"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de news:
%Pour l'instant, je ne comprends pas le principe de fonctionnement de ce
menu.
Le menu est construit dynamiquement ? C'est ce que tu veux dire ? Même
dans ce cas, rien n'empêche de mettre une propriété target sur chaque
menuitem créé dynamiquement. De même, la valeur de Session("NewPage")
pourrait sans doute être utilisée pour *construire* le menu plutôt que
lors de la réaction au clic (je vois mal d'ailleurs comment le menu
fonctionne, le session("newpage") étant toujours une valeur unique donc
quel que soit l'option de menu cliqué l'utilisateur ira toujours sur la
même page ???) Si en réaction au clic tu prévois ensuite de tester quel
est l'élément cliqué pour aller sur telle ou telle url, il est peut-être
aussi simple de définir ces urls lors de la création dynamique du menu...
Quelque chose comme :
Protected Sub Page_Load(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.Load
For i As Integer = 0 To 4
Dim mi As New MenuItem
mi.Text = "Page " & i.ToString
mi.NavigateUrl = "page" & i.ToString & ".aspx" ' Url calculée
dynamiquement, cela pourrait être un tbalau ou quoi que ce soit d'autre
mi.Target = "_blank"
Menu1.Items.Add(mi)
Next
End Sub
Lorque la page HTML est rendue la première fois, toutes les informations
nécessaires à la navigation vers la page suivante sont connues sans avoir
à gérer l'évènement concernant le clic (accessoirement le groupe ASP.NET
serait peut-être plus spécifique à ce problème).
--
Patrice
"Jean Claude" a écrit dans le message de
news: 47824a01$0$887$Bonjour Patrice
je ne peux pas mettre les "targets" (de même que le NavigateUrl ?) dans
les balises
asp:menuitem concernées car Session("NewPage") est variable, je l'ai mis
en dur pour tester le menu
Cordialement
JClaude
"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de news:Problème de logique. La modification de l'objet menu aura pour effet de
dire comment le menu sera généré dans la NOUVELLE page actuellement en
cours de construction d'où la nécessité de cliquer deux fois pour
obtenir le comportement voulu.
Bien voir le cycle de fonctionnement : le code .NET tourne sur le
serveur ce qui génère du code HTML qui repostera des demandes vers le
serveur sur demande de l'utilisateur. Ici modifier le code HTML de la
page *en cours de génération* ne sert à rien. C'est le code HTML de la
page *précédente* qui a été utilisé pour relancer une demande et ce
code HTML n'incluant pas le target blank on n'ouvre effectivement pas
la fenêtre dans une nouvelle fenêtre ce coup-ci... Selon la logique de
fonctionnement voulue (je vois que le nom de la page est également en
dur ??) le plus simple serait sans doute de mettre les "targets" (de
même que le NavigateUrl ?) dans les balises asp:menuitem concernées ce
qui pourrait éventuellement rendre totalement inutile de gérer cet
évènement.
--
Patrice
"Jean Claude" a écrit dans le message
de news: 478235bf$0$845$Bonjour
Sur un clic Menu je voudrais afficher une page sur une nouvelle
fenetre, avec le code ci-dessous, il me faut cliquer deux fois pour
obtenir cela, le premier clic affiche la page en remplacement de la
première. Pouvez-vous me dire ou est l'erreur
Protected Sub Menu1_MenuItemClick(ByVal sender As Object, _
ByVal e As System.Web.UI.WebControls.MenuEventArgs) _
Handles Menu1.MenuItemClick
Session("NewPage") = "~/FrmNewPage.aspx"
Menu1.Target = "_blank"
Menu1.SelectedItem.NavigateUrl = Session("NewPage")
Menu1.SelectedItem.Target = "_blank"
End Sub
Merci pour vos réponses
Cordialement
Jean Claude
Bonjour Patrice
Non le menu n'est pas construit dynamiquement (pour le test j'ai mis qu'un
Item, mais il y en aura plusieurs, c'est cet Item qui me pose problème).
le clic sur le menu selon l'internaute affiche une page type definie par
session("page"), et il y a trois possibilités de page type, et toujours
selon l'internaute le remplissage de la page se fait dynamiquement par une
requete sur une base de données Access.
Cordialement
J Claude
"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de news:
%23twXKsUUIHA.5360@TK2MSFTNGP03.phx.gbl...
Pour l'instant, je ne comprends pas le principe de fonctionnement de ce
menu.
Le menu est construit dynamiquement ? C'est ce que tu veux dire ? Même
dans ce cas, rien n'empêche de mettre une propriété target sur chaque
menuitem créé dynamiquement. De même, la valeur de Session("NewPage")
pourrait sans doute être utilisée pour *construire* le menu plutôt que
lors de la réaction au clic (je vois mal d'ailleurs comment le menu
fonctionne, le session("newpage") étant toujours une valeur unique donc
quel que soit l'option de menu cliqué l'utilisateur ira toujours sur la
même page ???) Si en réaction au clic tu prévois ensuite de tester quel
est l'élément cliqué pour aller sur telle ou telle url, il est peut-être
aussi simple de définir ces urls lors de la création dynamique du menu...
Quelque chose comme :
Protected Sub Page_Load(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.Load
For i As Integer = 0 To 4
Dim mi As New MenuItem
mi.Text = "Page " & i.ToString
mi.NavigateUrl = "page" & i.ToString & ".aspx" ' Url calculée
dynamiquement, cela pourrait être un tbalau ou quoi que ce soit d'autre
mi.Target = "_blank"
Menu1.Items.Add(mi)
Next
End Sub
Lorque la page HTML est rendue la première fois, toutes les informations
nécessaires à la navigation vers la page suivante sont connues sans avoir
à gérer l'évènement concernant le clic (accessoirement le groupe ASP.NET
serait peut-être plus spécifique à ce problème).
--
Patrice
"Jean Claude" <jean-claude.mansion@wanadoo.fr> a écrit dans le message de
news: 47824a01$0$887$ba4acef3@news.orange.fr...
Bonjour Patrice
je ne peux pas mettre les "targets" (de même que le NavigateUrl ?) dans
les balises
asp:menuitem concernées car Session("NewPage") est variable, je l'ai mis
en dur pour tester le menu
Cordialement
JClaude
"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de news:
eMHnOuTUIHA.5132@TK2MSFTNGP02.phx.gbl...
Problème de logique. La modification de l'objet menu aura pour effet de
dire comment le menu sera généré dans la NOUVELLE page actuellement en
cours de construction d'où la nécessité de cliquer deux fois pour
obtenir le comportement voulu.
Bien voir le cycle de fonctionnement : le code .NET tourne sur le
serveur ce qui génère du code HTML qui repostera des demandes vers le
serveur sur demande de l'utilisateur. Ici modifier le code HTML de la
page *en cours de génération* ne sert à rien. C'est le code HTML de la
page *précédente* qui a été utilisé pour relancer une demande et ce
code HTML n'incluant pas le target blank on n'ouvre effectivement pas
la fenêtre dans une nouvelle fenêtre ce coup-ci... Selon la logique de
fonctionnement voulue (je vois que le nom de la page est également en
dur ??) le plus simple serait sans doute de mettre les "targets" (de
même que le NavigateUrl ?) dans les balises asp:menuitem concernées ce
qui pourrait éventuellement rendre totalement inutile de gérer cet
évènement.
--
Patrice
"Jean Claude" <jean-claude.mansion@wanadoo.fr> a écrit dans le message
de news: 478235bf$0$845$ba4acef3@news.orange.fr...
Bonjour
Sur un clic Menu je voudrais afficher une page sur une nouvelle
fenetre, avec le code ci-dessous, il me faut cliquer deux fois pour
obtenir cela, le premier clic affiche la page en remplacement de la
première. Pouvez-vous me dire ou est l'erreur
Protected Sub Menu1_MenuItemClick(ByVal sender As Object, _
ByVal e As System.Web.UI.WebControls.MenuEventArgs) _
Handles Menu1.MenuItemClick
Session("NewPage") = "~/FrmNewPage.aspx"
Menu1.Target = "_blank"
Menu1.SelectedItem.NavigateUrl = Session("NewPage")
Menu1.SelectedItem.Target = "_blank"
End Sub
Merci pour vos réponses
Cordialement
Jean Claude
Bonjour Patrice
Non le menu n'est pas construit dynamiquement (pour le test j'ai mis qu'un
Item, mais il y en aura plusieurs, c'est cet Item qui me pose problème).
le clic sur le menu selon l'internaute affiche une page type definie par
session("page"), et il y a trois possibilités de page type, et toujours
selon l'internaute le remplissage de la page se fait dynamiquement par une
requete sur une base de données Access.
Cordialement
J Claude
"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de news:
%Pour l'instant, je ne comprends pas le principe de fonctionnement de ce
menu.
Le menu est construit dynamiquement ? C'est ce que tu veux dire ? Même
dans ce cas, rien n'empêche de mettre une propriété target sur chaque
menuitem créé dynamiquement. De même, la valeur de Session("NewPage")
pourrait sans doute être utilisée pour *construire* le menu plutôt que
lors de la réaction au clic (je vois mal d'ailleurs comment le menu
fonctionne, le session("newpage") étant toujours une valeur unique donc
quel que soit l'option de menu cliqué l'utilisateur ira toujours sur la
même page ???) Si en réaction au clic tu prévois ensuite de tester quel
est l'élément cliqué pour aller sur telle ou telle url, il est peut-être
aussi simple de définir ces urls lors de la création dynamique du menu...
Quelque chose comme :
Protected Sub Page_Load(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.Load
For i As Integer = 0 To 4
Dim mi As New MenuItem
mi.Text = "Page " & i.ToString
mi.NavigateUrl = "page" & i.ToString & ".aspx" ' Url calculée
dynamiquement, cela pourrait être un tbalau ou quoi que ce soit d'autre
mi.Target = "_blank"
Menu1.Items.Add(mi)
Next
End Sub
Lorque la page HTML est rendue la première fois, toutes les informations
nécessaires à la navigation vers la page suivante sont connues sans avoir
à gérer l'évènement concernant le clic (accessoirement le groupe ASP.NET
serait peut-être plus spécifique à ce problème).
--
Patrice
"Jean Claude" a écrit dans le message de
news: 47824a01$0$887$Bonjour Patrice
je ne peux pas mettre les "targets" (de même que le NavigateUrl ?) dans
les balises
asp:menuitem concernées car Session("NewPage") est variable, je l'ai mis
en dur pour tester le menu
Cordialement
JClaude
"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de news:Problème de logique. La modification de l'objet menu aura pour effet de
dire comment le menu sera généré dans la NOUVELLE page actuellement en
cours de construction d'où la nécessité de cliquer deux fois pour
obtenir le comportement voulu.
Bien voir le cycle de fonctionnement : le code .NET tourne sur le
serveur ce qui génère du code HTML qui repostera des demandes vers le
serveur sur demande de l'utilisateur. Ici modifier le code HTML de la
page *en cours de génération* ne sert à rien. C'est le code HTML de la
page *précédente* qui a été utilisé pour relancer une demande et ce
code HTML n'incluant pas le target blank on n'ouvre effectivement pas
la fenêtre dans une nouvelle fenêtre ce coup-ci... Selon la logique de
fonctionnement voulue (je vois que le nom de la page est également en
dur ??) le plus simple serait sans doute de mettre les "targets" (de
même que le NavigateUrl ?) dans les balises asp:menuitem concernées ce
qui pourrait éventuellement rendre totalement inutile de gérer cet
évènement.
--
Patrice
"Jean Claude" a écrit dans le message
de news: 478235bf$0$845$Bonjour
Sur un clic Menu je voudrais afficher une page sur une nouvelle
fenetre, avec le code ci-dessous, il me faut cliquer deux fois pour
obtenir cela, le premier clic affiche la page en remplacement de la
première. Pouvez-vous me dire ou est l'erreur
Protected Sub Menu1_MenuItemClick(ByVal sender As Object, _
ByVal e As System.Web.UI.WebControls.MenuEventArgs) _
Handles Menu1.MenuItemClick
Session("NewPage") = "~/FrmNewPage.aspx"
Menu1.Target = "_blank"
Menu1.SelectedItem.NavigateUrl = Session("NewPage")
Menu1.SelectedItem.Target = "_blank"
End Sub
Merci pour vos réponses
Cordialement
Jean Claude
Ok, je ferais donc tout simplement qq chose comme :
Menu1.MenuItems(0).NavigateUrl=Session("Page") dans le Page_Load pour
définir quelle est l'url à utiliser, la balise menuitem présente dans la
page ASPX utilisant déjà le bon "target" ce qui ouvrira la page demandée
dans une nouvelle fenêtre.
Cela devrait suffire à obtenir l'effet que tu veux. Le gérer dans
l'évènement click serait beaucoup plus compliqué voire impossible :
- seul le navigateur est susceptible d'ouvrir une page dans une nouvelle
fenêtre. Si ce point n'est pas déjà en place au traitement de ce click,
cela rend les choses bien compliquées
- il faudrait faire un redirect toi-même vers la page voulue
Avec la première approche, cela me semble plus directe. On se contente
d'indiquer au premier élément de menu, l'url de destination. Le mécanisme
habituel du menu permet alors d'obtenir le résultat voulu.
---
Patrice
"Jean Claude" a écrit dans le message de
news: 47832a60$0$847$Bonjour Patrice
Non le menu n'est pas construit dynamiquement (pour le test j'ai mis
qu'un Item, mais il y en aura plusieurs, c'est cet Item qui me pose
problème). le clic sur le menu selon l'internaute affiche une page type
definie par session("page"), et il y a trois possibilités de page type,
et toujours selon l'internaute le remplissage de la page se fait
dynamiquement par une requete sur une base de données Access.
Cordialement
J Claude
"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de news:
%Pour l'instant, je ne comprends pas le principe de fonctionnement de ce
menu.
Le menu est construit dynamiquement ? C'est ce que tu veux dire ? Même
dans ce cas, rien n'empêche de mettre une propriété target sur chaque
menuitem créé dynamiquement. De même, la valeur de Session("NewPage")
pourrait sans doute être utilisée pour *construire* le menu plutôt que
lors de la réaction au clic (je vois mal d'ailleurs comment le menu
fonctionne, le session("newpage") étant toujours une valeur unique donc
quel que soit l'option de menu cliqué l'utilisateur ira toujours sur la
même page ???) Si en réaction au clic tu prévois ensuite de tester quel
est l'élément cliqué pour aller sur telle ou telle url, il est peut-être
aussi simple de définir ces urls lors de la création dynamique du
menu...
Quelque chose comme :
Protected Sub Page_Load(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.Load
For i As Integer = 0 To 4
Dim mi As New MenuItem
mi.Text = "Page " & i.ToString
mi.NavigateUrl = "page" & i.ToString & ".aspx" ' Url calculée
dynamiquement, cela pourrait être un tbalau ou quoi que ce soit d'autre
mi.Target = "_blank"
Menu1.Items.Add(mi)
Next
End Sub
Lorque la page HTML est rendue la première fois, toutes les informations
nécessaires à la navigation vers la page suivante sont connues sans
avoir à gérer l'évènement concernant le clic (accessoirement le groupe
ASP.NET serait peut-être plus spécifique à ce problème).
--
Patrice
"Jean Claude" a écrit dans le message
de news: 47824a01$0$887$Bonjour Patrice
je ne peux pas mettre les "targets" (de même que le NavigateUrl ?)
dans les balises
asp:menuitem concernées car Session("NewPage") est variable, je l'ai
mis en dur pour tester le menu
Cordialement
JClaude
"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de
news:Problème de logique. La modification de l'objet menu aura pour effet
de dire comment le menu sera généré dans la NOUVELLE page actuellement
en cours de construction d'où la nécessité de cliquer deux fois pour
obtenir le comportement voulu.
Bien voir le cycle de fonctionnement : le code .NET tourne sur le
serveur ce qui génère du code HTML qui repostera des demandes vers le
serveur sur demande de l'utilisateur. Ici modifier le code HTML de la
page *en cours de génération* ne sert à rien. C'est le code HTML de la
page *précédente* qui a été utilisé pour relancer une demande et ce
code HTML n'incluant pas le target blank on n'ouvre effectivement pas
la fenêtre dans une nouvelle fenêtre ce coup-ci... Selon la logique de
fonctionnement voulue (je vois que le nom de la page est également en
dur ??) le plus simple serait sans doute de mettre les "targets" (de
même que le NavigateUrl ?) dans les balises asp:menuitem concernées ce
qui pourrait éventuellement rendre totalement inutile de gérer cet
évènement.
--
Patrice
"Jean Claude" a écrit dans le message
de news: 478235bf$0$845$Bonjour
Sur un clic Menu je voudrais afficher une page sur une nouvelle
fenetre, avec le code ci-dessous, il me faut cliquer deux fois pour
obtenir cela, le premier clic affiche la page en remplacement de la
première. Pouvez-vous me dire ou est l'erreur
Protected Sub Menu1_MenuItemClick(ByVal sender As Object, _
ByVal e As System.Web.UI.WebControls.MenuEventArgs) _
Handles Menu1.MenuItemClick
Session("NewPage") = "~/FrmNewPage.aspx"
Menu1.Target = "_blank"
Menu1.SelectedItem.NavigateUrl = Session("NewPage")
Menu1.SelectedItem.Target = "_blank"
End Sub
Merci pour vos réponses
Cordialement
Jean Claude
Ok, je ferais donc tout simplement qq chose comme :
Menu1.MenuItems(0).NavigateUrl=Session("Page") dans le Page_Load pour
définir quelle est l'url à utiliser, la balise menuitem présente dans la
page ASPX utilisant déjà le bon "target" ce qui ouvrira la page demandée
dans une nouvelle fenêtre.
Cela devrait suffire à obtenir l'effet que tu veux. Le gérer dans
l'évènement click serait beaucoup plus compliqué voire impossible :
- seul le navigateur est susceptible d'ouvrir une page dans une nouvelle
fenêtre. Si ce point n'est pas déjà en place au traitement de ce click,
cela rend les choses bien compliquées
- il faudrait faire un redirect toi-même vers la page voulue
Avec la première approche, cela me semble plus directe. On se contente
d'indiquer au premier élément de menu, l'url de destination. Le mécanisme
habituel du menu permet alors d'obtenir le résultat voulu.
---
Patrice
"Jean Claude" <jean-claude.mansion@wanadoo.fr> a écrit dans le message de
news: 47832a60$0$847$ba4acef3@news.orange.fr...
Bonjour Patrice
Non le menu n'est pas construit dynamiquement (pour le test j'ai mis
qu'un Item, mais il y en aura plusieurs, c'est cet Item qui me pose
problème). le clic sur le menu selon l'internaute affiche une page type
definie par session("page"), et il y a trois possibilités de page type,
et toujours selon l'internaute le remplissage de la page se fait
dynamiquement par une requete sur une base de données Access.
Cordialement
J Claude
"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de news:
%23twXKsUUIHA.5360@TK2MSFTNGP03.phx.gbl...
Pour l'instant, je ne comprends pas le principe de fonctionnement de ce
menu.
Le menu est construit dynamiquement ? C'est ce que tu veux dire ? Même
dans ce cas, rien n'empêche de mettre une propriété target sur chaque
menuitem créé dynamiquement. De même, la valeur de Session("NewPage")
pourrait sans doute être utilisée pour *construire* le menu plutôt que
lors de la réaction au clic (je vois mal d'ailleurs comment le menu
fonctionne, le session("newpage") étant toujours une valeur unique donc
quel que soit l'option de menu cliqué l'utilisateur ira toujours sur la
même page ???) Si en réaction au clic tu prévois ensuite de tester quel
est l'élément cliqué pour aller sur telle ou telle url, il est peut-être
aussi simple de définir ces urls lors de la création dynamique du
menu...
Quelque chose comme :
Protected Sub Page_Load(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.Load
For i As Integer = 0 To 4
Dim mi As New MenuItem
mi.Text = "Page " & i.ToString
mi.NavigateUrl = "page" & i.ToString & ".aspx" ' Url calculée
dynamiquement, cela pourrait être un tbalau ou quoi que ce soit d'autre
mi.Target = "_blank"
Menu1.Items.Add(mi)
Next
End Sub
Lorque la page HTML est rendue la première fois, toutes les informations
nécessaires à la navigation vers la page suivante sont connues sans
avoir à gérer l'évènement concernant le clic (accessoirement le groupe
ASP.NET serait peut-être plus spécifique à ce problème).
--
Patrice
"Jean Claude" <jean-claude.mansion@wanadoo.fr> a écrit dans le message
de news: 47824a01$0$887$ba4acef3@news.orange.fr...
Bonjour Patrice
je ne peux pas mettre les "targets" (de même que le NavigateUrl ?)
dans les balises
asp:menuitem concernées car Session("NewPage") est variable, je l'ai
mis en dur pour tester le menu
Cordialement
JClaude
"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de
news: eMHnOuTUIHA.5132@TK2MSFTNGP02.phx.gbl...
Problème de logique. La modification de l'objet menu aura pour effet
de dire comment le menu sera généré dans la NOUVELLE page actuellement
en cours de construction d'où la nécessité de cliquer deux fois pour
obtenir le comportement voulu.
Bien voir le cycle de fonctionnement : le code .NET tourne sur le
serveur ce qui génère du code HTML qui repostera des demandes vers le
serveur sur demande de l'utilisateur. Ici modifier le code HTML de la
page *en cours de génération* ne sert à rien. C'est le code HTML de la
page *précédente* qui a été utilisé pour relancer une demande et ce
code HTML n'incluant pas le target blank on n'ouvre effectivement pas
la fenêtre dans une nouvelle fenêtre ce coup-ci... Selon la logique de
fonctionnement voulue (je vois que le nom de la page est également en
dur ??) le plus simple serait sans doute de mettre les "targets" (de
même que le NavigateUrl ?) dans les balises asp:menuitem concernées ce
qui pourrait éventuellement rendre totalement inutile de gérer cet
évènement.
--
Patrice
"Jean Claude" <jean-claude.mansion@wanadoo.fr> a écrit dans le message
de news: 478235bf$0$845$ba4acef3@news.orange.fr...
Bonjour
Sur un clic Menu je voudrais afficher une page sur une nouvelle
fenetre, avec le code ci-dessous, il me faut cliquer deux fois pour
obtenir cela, le premier clic affiche la page en remplacement de la
première. Pouvez-vous me dire ou est l'erreur
Protected Sub Menu1_MenuItemClick(ByVal sender As Object, _
ByVal e As System.Web.UI.WebControls.MenuEventArgs) _
Handles Menu1.MenuItemClick
Session("NewPage") = "~/FrmNewPage.aspx"
Menu1.Target = "_blank"
Menu1.SelectedItem.NavigateUrl = Session("NewPage")
Menu1.SelectedItem.Target = "_blank"
End Sub
Merci pour vos réponses
Cordialement
Jean Claude
Ok, je ferais donc tout simplement qq chose comme :
Menu1.MenuItems(0).NavigateUrl=Session("Page") dans le Page_Load pour
définir quelle est l'url à utiliser, la balise menuitem présente dans la
page ASPX utilisant déjà le bon "target" ce qui ouvrira la page demandée
dans une nouvelle fenêtre.
Cela devrait suffire à obtenir l'effet que tu veux. Le gérer dans
l'évènement click serait beaucoup plus compliqué voire impossible :
- seul le navigateur est susceptible d'ouvrir une page dans une nouvelle
fenêtre. Si ce point n'est pas déjà en place au traitement de ce click,
cela rend les choses bien compliquées
- il faudrait faire un redirect toi-même vers la page voulue
Avec la première approche, cela me semble plus directe. On se contente
d'indiquer au premier élément de menu, l'url de destination. Le mécanisme
habituel du menu permet alors d'obtenir le résultat voulu.
---
Patrice
"Jean Claude" a écrit dans le message de
news: 47832a60$0$847$Bonjour Patrice
Non le menu n'est pas construit dynamiquement (pour le test j'ai mis
qu'un Item, mais il y en aura plusieurs, c'est cet Item qui me pose
problème). le clic sur le menu selon l'internaute affiche une page type
definie par session("page"), et il y a trois possibilités de page type,
et toujours selon l'internaute le remplissage de la page se fait
dynamiquement par une requete sur une base de données Access.
Cordialement
J Claude
"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de news:
%Pour l'instant, je ne comprends pas le principe de fonctionnement de ce
menu.
Le menu est construit dynamiquement ? C'est ce que tu veux dire ? Même
dans ce cas, rien n'empêche de mettre une propriété target sur chaque
menuitem créé dynamiquement. De même, la valeur de Session("NewPage")
pourrait sans doute être utilisée pour *construire* le menu plutôt que
lors de la réaction au clic (je vois mal d'ailleurs comment le menu
fonctionne, le session("newpage") étant toujours une valeur unique donc
quel que soit l'option de menu cliqué l'utilisateur ira toujours sur la
même page ???) Si en réaction au clic tu prévois ensuite de tester quel
est l'élément cliqué pour aller sur telle ou telle url, il est peut-être
aussi simple de définir ces urls lors de la création dynamique du
menu...
Quelque chose comme :
Protected Sub Page_Load(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.Load
For i As Integer = 0 To 4
Dim mi As New MenuItem
mi.Text = "Page " & i.ToString
mi.NavigateUrl = "page" & i.ToString & ".aspx" ' Url calculée
dynamiquement, cela pourrait être un tbalau ou quoi que ce soit d'autre
mi.Target = "_blank"
Menu1.Items.Add(mi)
Next
End Sub
Lorque la page HTML est rendue la première fois, toutes les informations
nécessaires à la navigation vers la page suivante sont connues sans
avoir à gérer l'évènement concernant le clic (accessoirement le groupe
ASP.NET serait peut-être plus spécifique à ce problème).
--
Patrice
"Jean Claude" a écrit dans le message
de news: 47824a01$0$887$Bonjour Patrice
je ne peux pas mettre les "targets" (de même que le NavigateUrl ?)
dans les balises
asp:menuitem concernées car Session("NewPage") est variable, je l'ai
mis en dur pour tester le menu
Cordialement
JClaude
"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de
news:Problème de logique. La modification de l'objet menu aura pour effet
de dire comment le menu sera généré dans la NOUVELLE page actuellement
en cours de construction d'où la nécessité de cliquer deux fois pour
obtenir le comportement voulu.
Bien voir le cycle de fonctionnement : le code .NET tourne sur le
serveur ce qui génère du code HTML qui repostera des demandes vers le
serveur sur demande de l'utilisateur. Ici modifier le code HTML de la
page *en cours de génération* ne sert à rien. C'est le code HTML de la
page *précédente* qui a été utilisé pour relancer une demande et ce
code HTML n'incluant pas le target blank on n'ouvre effectivement pas
la fenêtre dans une nouvelle fenêtre ce coup-ci... Selon la logique de
fonctionnement voulue (je vois que le nom de la page est également en
dur ??) le plus simple serait sans doute de mettre les "targets" (de
même que le NavigateUrl ?) dans les balises asp:menuitem concernées ce
qui pourrait éventuellement rendre totalement inutile de gérer cet
évènement.
--
Patrice
"Jean Claude" a écrit dans le message
de news: 478235bf$0$845$Bonjour
Sur un clic Menu je voudrais afficher une page sur une nouvelle
fenetre, avec le code ci-dessous, il me faut cliquer deux fois pour
obtenir cela, le premier clic affiche la page en remplacement de la
première. Pouvez-vous me dire ou est l'erreur
Protected Sub Menu1_MenuItemClick(ByVal sender As Object, _
ByVal e As System.Web.UI.WebControls.MenuEventArgs) _
Handles Menu1.MenuItemClick
Session("NewPage") = "~/FrmNewPage.aspx"
Menu1.Target = "_blank"
Menu1.SelectedItem.NavigateUrl = Session("NewPage")
Menu1.SelectedItem.Target = "_blank"
End Sub
Merci pour vos réponses
Cordialement
Jean Claude
Bonjour Patrice
C'est pas possible le code ne veut pas prendre MenuItems(0)
Cordialement
Jean Claude
"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de news:
%Ok, je ferais donc tout simplement qq chose comme :
Menu1.MenuItems(0).NavigateUrl=Session("Page") dans le Page_Load pour
définir quelle est l'url à utiliser, la balise menuitem présente dans la
page ASPX utilisant déjà le bon "target" ce qui ouvrira la page demandée
dans une nouvelle fenêtre.
Cela devrait suffire à obtenir l'effet que tu veux. Le gérer dans
l'évènement click serait beaucoup plus compliqué voire impossible :
- seul le navigateur est susceptible d'ouvrir une page dans une nouvelle
fenêtre. Si ce point n'est pas déjà en place au traitement de ce click,
cela rend les choses bien compliquées
- il faudrait faire un redirect toi-même vers la page voulue
Avec la première approche, cela me semble plus directe. On se contente
d'indiquer au premier élément de menu, l'url de destination. Le mécanisme
habituel du menu permet alors d'obtenir le résultat voulu.
---
Patrice
"Jean Claude" a écrit dans le message de
news: 47832a60$0$847$Bonjour Patrice
Non le menu n'est pas construit dynamiquement (pour le test j'ai mis
qu'un Item, mais il y en aura plusieurs, c'est cet Item qui me pose
problème). le clic sur le menu selon l'internaute affiche une page type
definie par session("page"), et il y a trois possibilités de page type,
et toujours selon l'internaute le remplissage de la page se fait
dynamiquement par une requete sur une base de données Access.
Cordialement
J Claude
"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de news:
%Pour l'instant, je ne comprends pas le principe de fonctionnement de ce
menu.
Le menu est construit dynamiquement ? C'est ce que tu veux dire ? Même
dans ce cas, rien n'empêche de mettre une propriété target sur chaque
menuitem créé dynamiquement. De même, la valeur de Session("NewPage")
pourrait sans doute être utilisée pour *construire* le menu plutôt que
lors de la réaction au clic (je vois mal d'ailleurs comment le menu
fonctionne, le session("newpage") étant toujours une valeur unique donc
quel que soit l'option de menu cliqué l'utilisateur ira toujours sur la
même page ???) Si en réaction au clic tu prévois ensuite de tester quel
est l'élément cliqué pour aller sur telle ou telle url, il est
peut-être aussi simple de définir ces urls lors de la création
dynamique du menu...
Quelque chose comme :
Protected Sub Page_Load(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.Load
For i As Integer = 0 To 4
Dim mi As New MenuItem
mi.Text = "Page " & i.ToString
mi.NavigateUrl = "page" & i.ToString & ".aspx" ' Url calculée
dynamiquement, cela pourrait être un tbalau ou quoi que ce soit d'autre
mi.Target = "_blank"
Menu1.Items.Add(mi)
Next
End Sub
Lorque la page HTML est rendue la première fois, toutes les
informations nécessaires à la navigation vers la page suivante sont
connues sans avoir à gérer l'évènement concernant le clic
(accessoirement le groupe ASP.NET serait peut-être plus spécifique à ce
problème).
--
Patrice
"Jean Claude" a écrit dans le message
de news: 47824a01$0$887$Bonjour Patrice
je ne peux pas mettre les "targets" (de même que le NavigateUrl ?)
dans les balises
asp:menuitem concernées car Session("NewPage") est variable, je l'ai
mis en dur pour tester le menu
Cordialement
JClaude
"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de
news:Problème de logique. La modification de l'objet menu aura pour effet
de dire comment le menu sera généré dans la NOUVELLE page
actuellement en cours de construction d'où la nécessité de cliquer
deux fois pour obtenir le comportement voulu.
Bien voir le cycle de fonctionnement : le code .NET tourne sur le
serveur ce qui génère du code HTML qui repostera des demandes vers le
serveur sur demande de l'utilisateur. Ici modifier le code HTML de la
page *en cours de génération* ne sert à rien. C'est le code HTML de
la page *précédente* qui a été utilisé pour relancer une demande et
ce code HTML n'incluant pas le target blank on n'ouvre effectivement
pas la fenêtre dans une nouvelle fenêtre ce coup-ci... Selon la
logique de fonctionnement voulue (je vois que le nom de la page est
également en dur ??) le plus simple serait sans doute de mettre les
"targets" (de même que le NavigateUrl ?) dans les balises
asp:menuitem concernées ce qui pourrait éventuellement rendre
totalement inutile de gérer cet évènement.
--
Patrice
"Jean Claude" a écrit dans le
message de news: 478235bf$0$845$Bonjour
Sur un clic Menu je voudrais afficher une page sur une nouvelle
fenetre, avec le code ci-dessous, il me faut cliquer deux fois pour
obtenir cela, le premier clic affiche la page en remplacement de la
première. Pouvez-vous me dire ou est l'erreur
Protected Sub Menu1_MenuItemClick(ByVal sender As Object, _
ByVal e As System.Web.UI.WebControls.MenuEventArgs) _
Handles Menu1.MenuItemClick
Session("NewPage") = "~/FrmNewPage.aspx"
Menu1.Target = "_blank"
Menu1.SelectedItem.NavigateUrl = Session("NewPage")
Menu1.SelectedItem.Target = "_blank"
End Sub
Merci pour vos réponses
Cordialement
Jean Claude
Bonjour Patrice
C'est pas possible le code ne veut pas prendre MenuItems(0)
Cordialement
Jean Claude
"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de news:
%230WhF3dUIHA.4196@TK2MSFTNGP04.phx.gbl...
Ok, je ferais donc tout simplement qq chose comme :
Menu1.MenuItems(0).NavigateUrl=Session("Page") dans le Page_Load pour
définir quelle est l'url à utiliser, la balise menuitem présente dans la
page ASPX utilisant déjà le bon "target" ce qui ouvrira la page demandée
dans une nouvelle fenêtre.
Cela devrait suffire à obtenir l'effet que tu veux. Le gérer dans
l'évènement click serait beaucoup plus compliqué voire impossible :
- seul le navigateur est susceptible d'ouvrir une page dans une nouvelle
fenêtre. Si ce point n'est pas déjà en place au traitement de ce click,
cela rend les choses bien compliquées
- il faudrait faire un redirect toi-même vers la page voulue
Avec la première approche, cela me semble plus directe. On se contente
d'indiquer au premier élément de menu, l'url de destination. Le mécanisme
habituel du menu permet alors d'obtenir le résultat voulu.
---
Patrice
"Jean Claude" <jean-claude.mansion@wanadoo.fr> a écrit dans le message de
news: 47832a60$0$847$ba4acef3@news.orange.fr...
Bonjour Patrice
Non le menu n'est pas construit dynamiquement (pour le test j'ai mis
qu'un Item, mais il y en aura plusieurs, c'est cet Item qui me pose
problème). le clic sur le menu selon l'internaute affiche une page type
definie par session("page"), et il y a trois possibilités de page type,
et toujours selon l'internaute le remplissage de la page se fait
dynamiquement par une requete sur une base de données Access.
Cordialement
J Claude
"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de news:
%23twXKsUUIHA.5360@TK2MSFTNGP03.phx.gbl...
Pour l'instant, je ne comprends pas le principe de fonctionnement de ce
menu.
Le menu est construit dynamiquement ? C'est ce que tu veux dire ? Même
dans ce cas, rien n'empêche de mettre une propriété target sur chaque
menuitem créé dynamiquement. De même, la valeur de Session("NewPage")
pourrait sans doute être utilisée pour *construire* le menu plutôt que
lors de la réaction au clic (je vois mal d'ailleurs comment le menu
fonctionne, le session("newpage") étant toujours une valeur unique donc
quel que soit l'option de menu cliqué l'utilisateur ira toujours sur la
même page ???) Si en réaction au clic tu prévois ensuite de tester quel
est l'élément cliqué pour aller sur telle ou telle url, il est
peut-être aussi simple de définir ces urls lors de la création
dynamique du menu...
Quelque chose comme :
Protected Sub Page_Load(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.Load
For i As Integer = 0 To 4
Dim mi As New MenuItem
mi.Text = "Page " & i.ToString
mi.NavigateUrl = "page" & i.ToString & ".aspx" ' Url calculée
dynamiquement, cela pourrait être un tbalau ou quoi que ce soit d'autre
mi.Target = "_blank"
Menu1.Items.Add(mi)
Next
End Sub
Lorque la page HTML est rendue la première fois, toutes les
informations nécessaires à la navigation vers la page suivante sont
connues sans avoir à gérer l'évènement concernant le clic
(accessoirement le groupe ASP.NET serait peut-être plus spécifique à ce
problème).
--
Patrice
"Jean Claude" <jean-claude.mansion@wanadoo.fr> a écrit dans le message
de news: 47824a01$0$887$ba4acef3@news.orange.fr...
Bonjour Patrice
je ne peux pas mettre les "targets" (de même que le NavigateUrl ?)
dans les balises
asp:menuitem concernées car Session("NewPage") est variable, je l'ai
mis en dur pour tester le menu
Cordialement
JClaude
"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de
news: eMHnOuTUIHA.5132@TK2MSFTNGP02.phx.gbl...
Problème de logique. La modification de l'objet menu aura pour effet
de dire comment le menu sera généré dans la NOUVELLE page
actuellement en cours de construction d'où la nécessité de cliquer
deux fois pour obtenir le comportement voulu.
Bien voir le cycle de fonctionnement : le code .NET tourne sur le
serveur ce qui génère du code HTML qui repostera des demandes vers le
serveur sur demande de l'utilisateur. Ici modifier le code HTML de la
page *en cours de génération* ne sert à rien. C'est le code HTML de
la page *précédente* qui a été utilisé pour relancer une demande et
ce code HTML n'incluant pas le target blank on n'ouvre effectivement
pas la fenêtre dans une nouvelle fenêtre ce coup-ci... Selon la
logique de fonctionnement voulue (je vois que le nom de la page est
également en dur ??) le plus simple serait sans doute de mettre les
"targets" (de même que le NavigateUrl ?) dans les balises
asp:menuitem concernées ce qui pourrait éventuellement rendre
totalement inutile de gérer cet évènement.
--
Patrice
"Jean Claude" <jean-claude.mansion@wanadoo.fr> a écrit dans le
message de news: 478235bf$0$845$ba4acef3@news.orange.fr...
Bonjour
Sur un clic Menu je voudrais afficher une page sur une nouvelle
fenetre, avec le code ci-dessous, il me faut cliquer deux fois pour
obtenir cela, le premier clic affiche la page en remplacement de la
première. Pouvez-vous me dire ou est l'erreur
Protected Sub Menu1_MenuItemClick(ByVal sender As Object, _
ByVal e As System.Web.UI.WebControls.MenuEventArgs) _
Handles Menu1.MenuItemClick
Session("NewPage") = "~/FrmNewPage.aspx"
Menu1.Target = "_blank"
Menu1.SelectedItem.NavigateUrl = Session("NewPage")
Menu1.SelectedItem.Target = "_blank"
End Sub
Merci pour vos réponses
Cordialement
Jean Claude
Bonjour Patrice
C'est pas possible le code ne veut pas prendre MenuItems(0)
Cordialement
Jean Claude
"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de news:
%Ok, je ferais donc tout simplement qq chose comme :
Menu1.MenuItems(0).NavigateUrl=Session("Page") dans le Page_Load pour
définir quelle est l'url à utiliser, la balise menuitem présente dans la
page ASPX utilisant déjà le bon "target" ce qui ouvrira la page demandée
dans une nouvelle fenêtre.
Cela devrait suffire à obtenir l'effet que tu veux. Le gérer dans
l'évènement click serait beaucoup plus compliqué voire impossible :
- seul le navigateur est susceptible d'ouvrir une page dans une nouvelle
fenêtre. Si ce point n'est pas déjà en place au traitement de ce click,
cela rend les choses bien compliquées
- il faudrait faire un redirect toi-même vers la page voulue
Avec la première approche, cela me semble plus directe. On se contente
d'indiquer au premier élément de menu, l'url de destination. Le mécanisme
habituel du menu permet alors d'obtenir le résultat voulu.
---
Patrice
"Jean Claude" a écrit dans le message de
news: 47832a60$0$847$Bonjour Patrice
Non le menu n'est pas construit dynamiquement (pour le test j'ai mis
qu'un Item, mais il y en aura plusieurs, c'est cet Item qui me pose
problème). le clic sur le menu selon l'internaute affiche une page type
definie par session("page"), et il y a trois possibilités de page type,
et toujours selon l'internaute le remplissage de la page se fait
dynamiquement par une requete sur une base de données Access.
Cordialement
J Claude
"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de news:
%Pour l'instant, je ne comprends pas le principe de fonctionnement de ce
menu.
Le menu est construit dynamiquement ? C'est ce que tu veux dire ? Même
dans ce cas, rien n'empêche de mettre une propriété target sur chaque
menuitem créé dynamiquement. De même, la valeur de Session("NewPage")
pourrait sans doute être utilisée pour *construire* le menu plutôt que
lors de la réaction au clic (je vois mal d'ailleurs comment le menu
fonctionne, le session("newpage") étant toujours une valeur unique donc
quel que soit l'option de menu cliqué l'utilisateur ira toujours sur la
même page ???) Si en réaction au clic tu prévois ensuite de tester quel
est l'élément cliqué pour aller sur telle ou telle url, il est
peut-être aussi simple de définir ces urls lors de la création
dynamique du menu...
Quelque chose comme :
Protected Sub Page_Load(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.Load
For i As Integer = 0 To 4
Dim mi As New MenuItem
mi.Text = "Page " & i.ToString
mi.NavigateUrl = "page" & i.ToString & ".aspx" ' Url calculée
dynamiquement, cela pourrait être un tbalau ou quoi que ce soit d'autre
mi.Target = "_blank"
Menu1.Items.Add(mi)
Next
End Sub
Lorque la page HTML est rendue la première fois, toutes les
informations nécessaires à la navigation vers la page suivante sont
connues sans avoir à gérer l'évènement concernant le clic
(accessoirement le groupe ASP.NET serait peut-être plus spécifique à ce
problème).
--
Patrice
"Jean Claude" a écrit dans le message
de news: 47824a01$0$887$Bonjour Patrice
je ne peux pas mettre les "targets" (de même que le NavigateUrl ?)
dans les balises
asp:menuitem concernées car Session("NewPage") est variable, je l'ai
mis en dur pour tester le menu
Cordialement
JClaude
"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de
news:Problème de logique. La modification de l'objet menu aura pour effet
de dire comment le menu sera généré dans la NOUVELLE page
actuellement en cours de construction d'où la nécessité de cliquer
deux fois pour obtenir le comportement voulu.
Bien voir le cycle de fonctionnement : le code .NET tourne sur le
serveur ce qui génère du code HTML qui repostera des demandes vers le
serveur sur demande de l'utilisateur. Ici modifier le code HTML de la
page *en cours de génération* ne sert à rien. C'est le code HTML de
la page *précédente* qui a été utilisé pour relancer une demande et
ce code HTML n'incluant pas le target blank on n'ouvre effectivement
pas la fenêtre dans une nouvelle fenêtre ce coup-ci... Selon la
logique de fonctionnement voulue (je vois que le nom de la page est
également en dur ??) le plus simple serait sans doute de mettre les
"targets" (de même que le NavigateUrl ?) dans les balises
asp:menuitem concernées ce qui pourrait éventuellement rendre
totalement inutile de gérer cet évènement.
--
Patrice
"Jean Claude" a écrit dans le
message de news: 478235bf$0$845$Bonjour
Sur un clic Menu je voudrais afficher une page sur une nouvelle
fenetre, avec le code ci-dessous, il me faut cliquer deux fois pour
obtenir cela, le premier clic affiche la page en remplacement de la
première. Pouvez-vous me dire ou est l'erreur
Protected Sub Menu1_MenuItemClick(ByVal sender As Object, _
ByVal e As System.Web.UI.WebControls.MenuEventArgs) _
Handles Menu1.MenuItemClick
Session("NewPage") = "~/FrmNewPage.aspx"
Menu1.Target = "_blank"
Menu1.SelectedItem.NavigateUrl = Session("NewPage")
Menu1.SelectedItem.Target = "_blank"
End Sub
Merci pour vos réponses
Cordialement
Jean Claude
Au temps pour moi c'est Items dans le code (n'hésite pas à jeter un oeil
dans Intellisense). Exemple :
- le menu est donc défini dans la page via :
<asp:Menu ID="Menu1" runat="server">
<Items>
<asp:MenuItem Target="_blank" Text="Page 1"/>
<asp:MenuItem Target="_blank" Text="Page 2"/>
<asp:MenuItem Target="_blank" Text="Page 3"/>
</Items>
</asp:Menu>
Le target est djéà mis mais comme la page exacte dépendra de l'utilisateur
connecté (voire de l'état actuel de l'appli ?) je ne mets pas les adresses
en dur...
Dans le code (Page_Load) cela donne :
Menu1.Items(0).NavigateUrl = "a.aspx"
Menu1.Items(1).NavigateUrl = "b.aspx"
Menu1.Items(2).NavigateUrl = "c.aspx"
A l'éxécution j'ai bien des liens vers les pages a, b,c qui s'ouvrent dans
une nouvelle fenêtre. Ton code utiliserait bien sûr les variables de
session (selon la façon dont tu détermines les pages que l'utilsiateur
verra il est également possible de lier le menu à une source de données
mis bon faisons déjà au plus simple pour l'instant).
--
Patrice
"Jean Claude" a écrit dans le message de
news: 47862e04$0$878$Bonjour Patrice
C'est pas possible le code ne veut pas prendre MenuItems(0)
Cordialement
Jean Claude
"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de news:
%Ok, je ferais donc tout simplement qq chose comme :
Menu1.MenuItems(0).NavigateUrl=Session("Page") dans le Page_Load pour
définir quelle est l'url à utiliser, la balise menuitem présente dans la
page ASPX utilisant déjà le bon "target" ce qui ouvrira la page demandée
dans une nouvelle fenêtre.
Cela devrait suffire à obtenir l'effet que tu veux. Le gérer dans
l'évènement click serait beaucoup plus compliqué voire impossible :
- seul le navigateur est susceptible d'ouvrir une page dans une nouvelle
fenêtre. Si ce point n'est pas déjà en place au traitement de ce click,
cela rend les choses bien compliquées
- il faudrait faire un redirect toi-même vers la page voulue
Avec la première approche, cela me semble plus directe. On se contente
d'indiquer au premier élément de menu, l'url de destination. Le
mécanisme habituel du menu permet alors d'obtenir le résultat voulu.
---
Patrice
"Jean Claude" a écrit dans le message
de news: 47832a60$0$847$Bonjour Patrice
Non le menu n'est pas construit dynamiquement (pour le test j'ai mis
qu'un Item, mais il y en aura plusieurs, c'est cet Item qui me pose
problème). le clic sur le menu selon l'internaute affiche une page type
definie par session("page"), et il y a trois possibilités de page type,
et toujours selon l'internaute le remplissage de la page se fait
dynamiquement par une requete sur une base de données Access.
Cordialement
J Claude
"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de
news: %Pour l'instant, je ne comprends pas le principe de fonctionnement de
ce menu.
Le menu est construit dynamiquement ? C'est ce que tu veux dire ? Même
dans ce cas, rien n'empêche de mettre une propriété target sur chaque
menuitem créé dynamiquement. De même, la valeur de Session("NewPage")
pourrait sans doute être utilisée pour *construire* le menu plutôt que
lors de la réaction au clic (je vois mal d'ailleurs comment le menu
fonctionne, le session("newpage") étant toujours une valeur unique
donc quel que soit l'option de menu cliqué l'utilisateur ira toujours
sur la même page ???) Si en réaction au clic tu prévois ensuite de
tester quel est l'élément cliqué pour aller sur telle ou telle url, il
est peut-être aussi simple de définir ces urls lors de la création
dynamique du menu...
Quelque chose comme :
Protected Sub Page_Load(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.Load
For i As Integer = 0 To 4
Dim mi As New MenuItem
mi.Text = "Page " & i.ToString
mi.NavigateUrl = "page" & i.ToString & ".aspx" ' Url calculée
dynamiquement, cela pourrait être un tbalau ou quoi que ce soit
d'autre
mi.Target = "_blank"
Menu1.Items.Add(mi)
Next
End Sub
Lorque la page HTML est rendue la première fois, toutes les
informations nécessaires à la navigation vers la page suivante sont
connues sans avoir à gérer l'évènement concernant le clic
(accessoirement le groupe ASP.NET serait peut-être plus spécifique à
ce problème).
--
Patrice
"Jean Claude" a écrit dans le message
de news: 47824a01$0$887$Bonjour Patrice
je ne peux pas mettre les "targets" (de même que le NavigateUrl ?)
dans les balises
asp:menuitem concernées car Session("NewPage") est variable, je l'ai
mis en dur pour tester le menu
Cordialement
JClaude
"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de
news:Problème de logique. La modification de l'objet menu aura pour effet
de dire comment le menu sera généré dans la NOUVELLE page
actuellement en cours de construction d'où la nécessité de cliquer
deux fois pour obtenir le comportement voulu.
Bien voir le cycle de fonctionnement : le code .NET tourne sur le
serveur ce qui génère du code HTML qui repostera des demandes vers
le serveur sur demande de l'utilisateur. Ici modifier le code HTML
de la page *en cours de génération* ne sert à rien. C'est le code
HTML de la page *précédente* qui a été utilisé pour relancer une
demande et ce code HTML n'incluant pas le target blank on n'ouvre
effectivement pas la fenêtre dans une nouvelle fenêtre ce coup-ci...
Selon la logique de fonctionnement voulue (je vois que le nom de la
page est également en dur ??) le plus simple serait sans doute de
mettre les "targets" (de même que le NavigateUrl ?) dans les balises
asp:menuitem concernées ce qui pourrait éventuellement rendre
totalement inutile de gérer cet évènement.
--
Patrice
"Jean Claude" a écrit dans le
message de news: 478235bf$0$845$Bonjour
Sur un clic Menu je voudrais afficher une page sur une nouvelle
fenetre, avec le code ci-dessous, il me faut cliquer deux fois pour
obtenir cela, le premier clic affiche la page en remplacement de la
première. Pouvez-vous me dire ou est l'erreur
Protected Sub Menu1_MenuItemClick(ByVal sender As Object, _
ByVal e As System.Web.UI.WebControls.MenuEventArgs) _
Handles Menu1.MenuItemClick
Session("NewPage") = "~/FrmNewPage.aspx"
Menu1.Target = "_blank"
Menu1.SelectedItem.NavigateUrl = Session("NewPage")
Menu1.SelectedItem.Target = "_blank"
End Sub
Merci pour vos réponses
Cordialement
Jean Claude
Au temps pour moi c'est Items dans le code (n'hésite pas à jeter un oeil
dans Intellisense). Exemple :
- le menu est donc défini dans la page via :
<asp:Menu ID="Menu1" runat="server">
<Items>
<asp:MenuItem Target="_blank" Text="Page 1"/>
<asp:MenuItem Target="_blank" Text="Page 2"/>
<asp:MenuItem Target="_blank" Text="Page 3"/>
</Items>
</asp:Menu>
Le target est djéà mis mais comme la page exacte dépendra de l'utilisateur
connecté (voire de l'état actuel de l'appli ?) je ne mets pas les adresses
en dur...
Dans le code (Page_Load) cela donne :
Menu1.Items(0).NavigateUrl = "a.aspx"
Menu1.Items(1).NavigateUrl = "b.aspx"
Menu1.Items(2).NavigateUrl = "c.aspx"
A l'éxécution j'ai bien des liens vers les pages a, b,c qui s'ouvrent dans
une nouvelle fenêtre. Ton code utiliserait bien sûr les variables de
session (selon la façon dont tu détermines les pages que l'utilsiateur
verra il est également possible de lier le menu à une source de données
mis bon faisons déjà au plus simple pour l'instant).
--
Patrice
"Jean Claude" <jean-claude.mansion@wanadoo.fr> a écrit dans le message de
news: 47862e04$0$878$ba4acef3@news.orange.fr...
Bonjour Patrice
C'est pas possible le code ne veut pas prendre MenuItems(0)
Cordialement
Jean Claude
"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de news:
%230WhF3dUIHA.4196@TK2MSFTNGP04.phx.gbl...
Ok, je ferais donc tout simplement qq chose comme :
Menu1.MenuItems(0).NavigateUrl=Session("Page") dans le Page_Load pour
définir quelle est l'url à utiliser, la balise menuitem présente dans la
page ASPX utilisant déjà le bon "target" ce qui ouvrira la page demandée
dans une nouvelle fenêtre.
Cela devrait suffire à obtenir l'effet que tu veux. Le gérer dans
l'évènement click serait beaucoup plus compliqué voire impossible :
- seul le navigateur est susceptible d'ouvrir une page dans une nouvelle
fenêtre. Si ce point n'est pas déjà en place au traitement de ce click,
cela rend les choses bien compliquées
- il faudrait faire un redirect toi-même vers la page voulue
Avec la première approche, cela me semble plus directe. On se contente
d'indiquer au premier élément de menu, l'url de destination. Le
mécanisme habituel du menu permet alors d'obtenir le résultat voulu.
---
Patrice
"Jean Claude" <jean-claude.mansion@wanadoo.fr> a écrit dans le message
de news: 47832a60$0$847$ba4acef3@news.orange.fr...
Bonjour Patrice
Non le menu n'est pas construit dynamiquement (pour le test j'ai mis
qu'un Item, mais il y en aura plusieurs, c'est cet Item qui me pose
problème). le clic sur le menu selon l'internaute affiche une page type
definie par session("page"), et il y a trois possibilités de page type,
et toujours selon l'internaute le remplissage de la page se fait
dynamiquement par une requete sur une base de données Access.
Cordialement
J Claude
"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de
news: %23twXKsUUIHA.5360@TK2MSFTNGP03.phx.gbl...
Pour l'instant, je ne comprends pas le principe de fonctionnement de
ce menu.
Le menu est construit dynamiquement ? C'est ce que tu veux dire ? Même
dans ce cas, rien n'empêche de mettre une propriété target sur chaque
menuitem créé dynamiquement. De même, la valeur de Session("NewPage")
pourrait sans doute être utilisée pour *construire* le menu plutôt que
lors de la réaction au clic (je vois mal d'ailleurs comment le menu
fonctionne, le session("newpage") étant toujours une valeur unique
donc quel que soit l'option de menu cliqué l'utilisateur ira toujours
sur la même page ???) Si en réaction au clic tu prévois ensuite de
tester quel est l'élément cliqué pour aller sur telle ou telle url, il
est peut-être aussi simple de définir ces urls lors de la création
dynamique du menu...
Quelque chose comme :
Protected Sub Page_Load(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.Load
For i As Integer = 0 To 4
Dim mi As New MenuItem
mi.Text = "Page " & i.ToString
mi.NavigateUrl = "page" & i.ToString & ".aspx" ' Url calculée
dynamiquement, cela pourrait être un tbalau ou quoi que ce soit
d'autre
mi.Target = "_blank"
Menu1.Items.Add(mi)
Next
End Sub
Lorque la page HTML est rendue la première fois, toutes les
informations nécessaires à la navigation vers la page suivante sont
connues sans avoir à gérer l'évènement concernant le clic
(accessoirement le groupe ASP.NET serait peut-être plus spécifique à
ce problème).
--
Patrice
"Jean Claude" <jean-claude.mansion@wanadoo.fr> a écrit dans le message
de news: 47824a01$0$887$ba4acef3@news.orange.fr...
Bonjour Patrice
je ne peux pas mettre les "targets" (de même que le NavigateUrl ?)
dans les balises
asp:menuitem concernées car Session("NewPage") est variable, je l'ai
mis en dur pour tester le menu
Cordialement
JClaude
"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de
news: eMHnOuTUIHA.5132@TK2MSFTNGP02.phx.gbl...
Problème de logique. La modification de l'objet menu aura pour effet
de dire comment le menu sera généré dans la NOUVELLE page
actuellement en cours de construction d'où la nécessité de cliquer
deux fois pour obtenir le comportement voulu.
Bien voir le cycle de fonctionnement : le code .NET tourne sur le
serveur ce qui génère du code HTML qui repostera des demandes vers
le serveur sur demande de l'utilisateur. Ici modifier le code HTML
de la page *en cours de génération* ne sert à rien. C'est le code
HTML de la page *précédente* qui a été utilisé pour relancer une
demande et ce code HTML n'incluant pas le target blank on n'ouvre
effectivement pas la fenêtre dans une nouvelle fenêtre ce coup-ci...
Selon la logique de fonctionnement voulue (je vois que le nom de la
page est également en dur ??) le plus simple serait sans doute de
mettre les "targets" (de même que le NavigateUrl ?) dans les balises
asp:menuitem concernées ce qui pourrait éventuellement rendre
totalement inutile de gérer cet évènement.
--
Patrice
"Jean Claude" <jean-claude.mansion@wanadoo.fr> a écrit dans le
message de news: 478235bf$0$845$ba4acef3@news.orange.fr...
Bonjour
Sur un clic Menu je voudrais afficher une page sur une nouvelle
fenetre, avec le code ci-dessous, il me faut cliquer deux fois pour
obtenir cela, le premier clic affiche la page en remplacement de la
première. Pouvez-vous me dire ou est l'erreur
Protected Sub Menu1_MenuItemClick(ByVal sender As Object, _
ByVal e As System.Web.UI.WebControls.MenuEventArgs) _
Handles Menu1.MenuItemClick
Session("NewPage") = "~/FrmNewPage.aspx"
Menu1.Target = "_blank"
Menu1.SelectedItem.NavigateUrl = Session("NewPage")
Menu1.SelectedItem.Target = "_blank"
End Sub
Merci pour vos réponses
Cordialement
Jean Claude
Au temps pour moi c'est Items dans le code (n'hésite pas à jeter un oeil
dans Intellisense). Exemple :
- le menu est donc défini dans la page via :
<asp:Menu ID="Menu1" runat="server">
<Items>
<asp:MenuItem Target="_blank" Text="Page 1"/>
<asp:MenuItem Target="_blank" Text="Page 2"/>
<asp:MenuItem Target="_blank" Text="Page 3"/>
</Items>
</asp:Menu>
Le target est djéà mis mais comme la page exacte dépendra de l'utilisateur
connecté (voire de l'état actuel de l'appli ?) je ne mets pas les adresses
en dur...
Dans le code (Page_Load) cela donne :
Menu1.Items(0).NavigateUrl = "a.aspx"
Menu1.Items(1).NavigateUrl = "b.aspx"
Menu1.Items(2).NavigateUrl = "c.aspx"
A l'éxécution j'ai bien des liens vers les pages a, b,c qui s'ouvrent dans
une nouvelle fenêtre. Ton code utiliserait bien sûr les variables de
session (selon la façon dont tu détermines les pages que l'utilsiateur
verra il est également possible de lier le menu à une source de données
mis bon faisons déjà au plus simple pour l'instant).
--
Patrice
"Jean Claude" a écrit dans le message de
news: 47862e04$0$878$Bonjour Patrice
C'est pas possible le code ne veut pas prendre MenuItems(0)
Cordialement
Jean Claude
"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de news:
%Ok, je ferais donc tout simplement qq chose comme :
Menu1.MenuItems(0).NavigateUrl=Session("Page") dans le Page_Load pour
définir quelle est l'url à utiliser, la balise menuitem présente dans la
page ASPX utilisant déjà le bon "target" ce qui ouvrira la page demandée
dans une nouvelle fenêtre.
Cela devrait suffire à obtenir l'effet que tu veux. Le gérer dans
l'évènement click serait beaucoup plus compliqué voire impossible :
- seul le navigateur est susceptible d'ouvrir une page dans une nouvelle
fenêtre. Si ce point n'est pas déjà en place au traitement de ce click,
cela rend les choses bien compliquées
- il faudrait faire un redirect toi-même vers la page voulue
Avec la première approche, cela me semble plus directe. On se contente
d'indiquer au premier élément de menu, l'url de destination. Le
mécanisme habituel du menu permet alors d'obtenir le résultat voulu.
---
Patrice
"Jean Claude" a écrit dans le message
de news: 47832a60$0$847$Bonjour Patrice
Non le menu n'est pas construit dynamiquement (pour le test j'ai mis
qu'un Item, mais il y en aura plusieurs, c'est cet Item qui me pose
problème). le clic sur le menu selon l'internaute affiche une page type
definie par session("page"), et il y a trois possibilités de page type,
et toujours selon l'internaute le remplissage de la page se fait
dynamiquement par une requete sur une base de données Access.
Cordialement
J Claude
"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de
news: %Pour l'instant, je ne comprends pas le principe de fonctionnement de
ce menu.
Le menu est construit dynamiquement ? C'est ce que tu veux dire ? Même
dans ce cas, rien n'empêche de mettre une propriété target sur chaque
menuitem créé dynamiquement. De même, la valeur de Session("NewPage")
pourrait sans doute être utilisée pour *construire* le menu plutôt que
lors de la réaction au clic (je vois mal d'ailleurs comment le menu
fonctionne, le session("newpage") étant toujours une valeur unique
donc quel que soit l'option de menu cliqué l'utilisateur ira toujours
sur la même page ???) Si en réaction au clic tu prévois ensuite de
tester quel est l'élément cliqué pour aller sur telle ou telle url, il
est peut-être aussi simple de définir ces urls lors de la création
dynamique du menu...
Quelque chose comme :
Protected Sub Page_Load(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.Load
For i As Integer = 0 To 4
Dim mi As New MenuItem
mi.Text = "Page " & i.ToString
mi.NavigateUrl = "page" & i.ToString & ".aspx" ' Url calculée
dynamiquement, cela pourrait être un tbalau ou quoi que ce soit
d'autre
mi.Target = "_blank"
Menu1.Items.Add(mi)
Next
End Sub
Lorque la page HTML est rendue la première fois, toutes les
informations nécessaires à la navigation vers la page suivante sont
connues sans avoir à gérer l'évènement concernant le clic
(accessoirement le groupe ASP.NET serait peut-être plus spécifique à
ce problème).
--
Patrice
"Jean Claude" a écrit dans le message
de news: 47824a01$0$887$Bonjour Patrice
je ne peux pas mettre les "targets" (de même que le NavigateUrl ?)
dans les balises
asp:menuitem concernées car Session("NewPage") est variable, je l'ai
mis en dur pour tester le menu
Cordialement
JClaude
"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de
news:Problème de logique. La modification de l'objet menu aura pour effet
de dire comment le menu sera généré dans la NOUVELLE page
actuellement en cours de construction d'où la nécessité de cliquer
deux fois pour obtenir le comportement voulu.
Bien voir le cycle de fonctionnement : le code .NET tourne sur le
serveur ce qui génère du code HTML qui repostera des demandes vers
le serveur sur demande de l'utilisateur. Ici modifier le code HTML
de la page *en cours de génération* ne sert à rien. C'est le code
HTML de la page *précédente* qui a été utilisé pour relancer une
demande et ce code HTML n'incluant pas le target blank on n'ouvre
effectivement pas la fenêtre dans une nouvelle fenêtre ce coup-ci...
Selon la logique de fonctionnement voulue (je vois que le nom de la
page est également en dur ??) le plus simple serait sans doute de
mettre les "targets" (de même que le NavigateUrl ?) dans les balises
asp:menuitem concernées ce qui pourrait éventuellement rendre
totalement inutile de gérer cet évènement.
--
Patrice
"Jean Claude" a écrit dans le
message de news: 478235bf$0$845$Bonjour
Sur un clic Menu je voudrais afficher une page sur une nouvelle
fenetre, avec le code ci-dessous, il me faut cliquer deux fois pour
obtenir cela, le premier clic affiche la page en remplacement de la
première. Pouvez-vous me dire ou est l'erreur
Protected Sub Menu1_MenuItemClick(ByVal sender As Object, _
ByVal e As System.Web.UI.WebControls.MenuEventArgs) _
Handles Menu1.MenuItemClick
Session("NewPage") = "~/FrmNewPage.aspx"
Menu1.Target = "_blank"
Menu1.SelectedItem.NavigateUrl = Session("NewPage")
Menu1.SelectedItem.Target = "_blank"
End Sub
Merci pour vos réponses
Cordialement
Jean Claude
Bonjour Patrice
Merci pour ta réponse, c'est OK
J'a deux autres problèmes peux-tu m'aider à trouver la réponse ?
-1- je veux afficher 6 images sur une page après les avoir
redimensionnées, j'ai créé une procédure pour cela :
Sub Dessineimage()
'chargement de l'image d'origine
Dim chemin As String = ""
chemin = Session("Rep") & Session("Image")
Dim newImage As Drawing.Image =
System.Drawing.Image.FromFile(Server.MapPath(chemin), True)
Image1.Width = Unit.Pixel(newImage.Width)
Image1.Height = Unit.Pixel(newImage.Height)
Dim lahauteur As Integer = 0
Dim lalargeur As Integer = 0
lahauteur = Image1.Height.Value
lalargeur = Image1.Width.Value
'taille maxi de la nouvelle image
Dim maxHeight As Integer = 150
'Nouvelles dimensions d'affichage
Image1.ImageUrl = "AR2E18M0R02/" & Session("Image")
Image1.Height = lahauteur * (maxHeight / lahauteur)
Image1.Width = lalargeur * (maxHeight / lahauteur)
End Sub
Pour utiliser cette procédure pour chaque image je voulais écrire
Image(I).Width et le code ne l'accepte pas
-2- j'ai créé un GridView avec une colonne avec HyperLinkField pour
pouvoir afficher une page dans une nouvelle fenetre (_target= ''blank'')
après un clic
j'ai besoin d'ajouter à l' HyperLinkField un OnCommand pour créer une
procédure LinkButton_Command car j'ai besoin d'effectuer une requete avant
d'afficher la page (la page étant variable et le code n'accepte pas
OnCommand
Merci pour tes réponses
Cordialement
Jean Claude
"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de news:Au temps pour moi c'est Items dans le code (n'hésite pas à jeter un oeil
dans Intellisense). Exemple :
- le menu est donc défini dans la page via :
<asp:Menu ID="Menu1" runat="server">
<Items>
<asp:MenuItem Target="_blank" Text="Page 1"/>
<asp:MenuItem Target="_blank" Text="Page 2"/>
<asp:MenuItem Target="_blank" Text="Page 3"/>
</Items>
</asp:Menu>
Le target est djéà mis mais comme la page exacte dépendra de
l'utilisateur connecté (voire de l'état actuel de l'appli ?) je ne mets
pas les adresses en dur...
Dans le code (Page_Load) cela donne :
Menu1.Items(0).NavigateUrl = "a.aspx"
Menu1.Items(1).NavigateUrl = "b.aspx"
Menu1.Items(2).NavigateUrl = "c.aspx"
A l'éxécution j'ai bien des liens vers les pages a, b,c qui s'ouvrent
dans une nouvelle fenêtre. Ton code utiliserait bien sûr les variables de
session (selon la façon dont tu détermines les pages que l'utilsiateur
verra il est également possible de lier le menu à une source de données
mis bon faisons déjà au plus simple pour l'instant).
--
Patrice
"Jean Claude" a écrit dans le message de
news: 47862e04$0$878$Bonjour Patrice
C'est pas possible le code ne veut pas prendre MenuItems(0)
Cordialement
Jean Claude
"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de news:
%Ok, je ferais donc tout simplement qq chose comme :
Menu1.MenuItems(0).NavigateUrl=Session("Page") dans le Page_Load pour
définir quelle est l'url à utiliser, la balise menuitem présente dans
la page ASPX utilisant déjà le bon "target" ce qui ouvrira la page
demandée dans une nouvelle fenêtre.
Cela devrait suffire à obtenir l'effet que tu veux. Le gérer dans
l'évènement click serait beaucoup plus compliqué voire impossible :
- seul le navigateur est susceptible d'ouvrir une page dans une
nouvelle fenêtre. Si ce point n'est pas déjà en place au traitement de
ce click, cela rend les choses bien compliquées
- il faudrait faire un redirect toi-même vers la page voulue
Avec la première approche, cela me semble plus directe. On se contente
d'indiquer au premier élément de menu, l'url de destination. Le
mécanisme habituel du menu permet alors d'obtenir le résultat voulu.
---
Patrice
"Jean Claude" a écrit dans le message
de news: 47832a60$0$847$Bonjour Patrice
Non le menu n'est pas construit dynamiquement (pour le test j'ai mis
qu'un Item, mais il y en aura plusieurs, c'est cet Item qui me pose
problème). le clic sur le menu selon l'internaute affiche une page
type definie par session("page"), et il y a trois possibilités de page
type, et toujours selon l'internaute le remplissage de la page se fait
dynamiquement par une requete sur une base de données Access.
Cordialement
J Claude
"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de
news: %Pour l'instant, je ne comprends pas le principe de fonctionnement de
ce menu.
Le menu est construit dynamiquement ? C'est ce que tu veux dire ?
Même dans ce cas, rien n'empêche de mettre une propriété target sur
chaque menuitem créé dynamiquement. De même, la valeur de
Session("NewPage") pourrait sans doute être utilisée pour
*construire* le menu plutôt que lors de la réaction au clic (je vois
mal d'ailleurs comment le menu fonctionne, le session("newpage")
étant toujours une valeur unique donc quel que soit l'option de menu
cliqué l'utilisateur ira toujours sur la même page ???) Si en
réaction au clic tu prévois ensuite de tester quel est l'élément
cliqué pour aller sur telle ou telle url, il est peut-être aussi
simple de définir ces urls lors de la création dynamique du menu...
Quelque chose comme :
Protected Sub Page_Load(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.Load
For i As Integer = 0 To 4
Dim mi As New MenuItem
mi.Text = "Page " & i.ToString
mi.NavigateUrl = "page" & i.ToString & ".aspx" ' Url calculée
dynamiquement, cela pourrait être un tbalau ou quoi que ce soit
d'autre
mi.Target = "_blank"
Menu1.Items.Add(mi)
Next
End Sub
Lorque la page HTML est rendue la première fois, toutes les
informations nécessaires à la navigation vers la page suivante sont
connues sans avoir à gérer l'évènement concernant le clic
(accessoirement le groupe ASP.NET serait peut-être plus spécifique à
ce problème).
--
Patrice
"Jean Claude" a écrit dans le
message de news: 47824a01$0$887$Bonjour Patrice
je ne peux pas mettre les "targets" (de même que le NavigateUrl ?)
dans les balises
asp:menuitem concernées car Session("NewPage") est variable, je l'ai
mis en dur pour tester le menu
Cordialement
JClaude
"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de
news:Problème de logique. La modification de l'objet menu aura pour
effet de dire comment le menu sera généré dans la NOUVELLE page
actuellement en cours de construction d'où la nécessité de cliquer
deux fois pour obtenir le comportement voulu.
Bien voir le cycle de fonctionnement : le code .NET tourne sur le
serveur ce qui génère du code HTML qui repostera des demandes vers
le serveur sur demande de l'utilisateur. Ici modifier le code HTML
de la page *en cours de génération* ne sert à rien. C'est le code
HTML de la page *précédente* qui a été utilisé pour relancer une
demande et ce code HTML n'incluant pas le target blank on n'ouvre
effectivement pas la fenêtre dans une nouvelle fenêtre ce
coup-ci... Selon la logique de fonctionnement voulue (je vois que
le nom de la page est également en dur ??) le plus simple serait
sans doute de mettre les "targets" (de même que le NavigateUrl ?)
dans les balises asp:menuitem concernées ce qui pourrait
éventuellement rendre totalement inutile de gérer cet évènement.
--
Patrice
"Jean Claude" a écrit dans le
message de news: 478235bf$0$845$Bonjour
Sur un clic Menu je voudrais afficher une page sur une nouvelle
fenetre, avec le code ci-dessous, il me faut cliquer deux fois
pour obtenir cela, le premier clic affiche la page en remplacement
de la première. Pouvez-vous me dire ou est l'erreur
Protected Sub Menu1_MenuItemClick(ByVal sender As Object, _
ByVal e As System.Web.UI.WebControls.MenuEventArgs) _
Handles Menu1.MenuItemClick
Session("NewPage") = "~/FrmNewPage.aspx"
Menu1.Target = "_blank"
Menu1.SelectedItem.NavigateUrl = Session("NewPage")
Menu1.SelectedItem.Target = "_blank"
End Sub
Merci pour vos réponses
Cordialement
Jean Claude
Bonjour Patrice
Merci pour ta réponse, c'est OK
J'a deux autres problèmes peux-tu m'aider à trouver la réponse ?
-1- je veux afficher 6 images sur une page après les avoir
redimensionnées, j'ai créé une procédure pour cela :
Sub Dessineimage()
'chargement de l'image d'origine
Dim chemin As String = ""
chemin = Session("Rep") & Session("Image")
Dim newImage As Drawing.Image =
System.Drawing.Image.FromFile(Server.MapPath(chemin), True)
Image1.Width = Unit.Pixel(newImage.Width)
Image1.Height = Unit.Pixel(newImage.Height)
Dim lahauteur As Integer = 0
Dim lalargeur As Integer = 0
lahauteur = Image1.Height.Value
lalargeur = Image1.Width.Value
'taille maxi de la nouvelle image
Dim maxHeight As Integer = 150
'Nouvelles dimensions d'affichage
Image1.ImageUrl = "AR2E18M0R02/" & Session("Image")
Image1.Height = lahauteur * (maxHeight / lahauteur)
Image1.Width = lalargeur * (maxHeight / lahauteur)
End Sub
Pour utiliser cette procédure pour chaque image je voulais écrire
Image(I).Width et le code ne l'accepte pas
-2- j'ai créé un GridView avec une colonne avec HyperLinkField pour
pouvoir afficher une page dans une nouvelle fenetre (_target= ''blank'')
après un clic
j'ai besoin d'ajouter à l' HyperLinkField un OnCommand pour créer une
procédure LinkButton_Command car j'ai besoin d'effectuer une requete avant
d'afficher la page (la page étant variable et le code n'accepte pas
OnCommand
Merci pour tes réponses
Cordialement
Jean Claude
"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de news:
ucrKX15UIHA.4360@TK2MSFTNGP06.phx.gbl...
Au temps pour moi c'est Items dans le code (n'hésite pas à jeter un oeil
dans Intellisense). Exemple :
- le menu est donc défini dans la page via :
<asp:Menu ID="Menu1" runat="server">
<Items>
<asp:MenuItem Target="_blank" Text="Page 1"/>
<asp:MenuItem Target="_blank" Text="Page 2"/>
<asp:MenuItem Target="_blank" Text="Page 3"/>
</Items>
</asp:Menu>
Le target est djéà mis mais comme la page exacte dépendra de
l'utilisateur connecté (voire de l'état actuel de l'appli ?) je ne mets
pas les adresses en dur...
Dans le code (Page_Load) cela donne :
Menu1.Items(0).NavigateUrl = "a.aspx"
Menu1.Items(1).NavigateUrl = "b.aspx"
Menu1.Items(2).NavigateUrl = "c.aspx"
A l'éxécution j'ai bien des liens vers les pages a, b,c qui s'ouvrent
dans une nouvelle fenêtre. Ton code utiliserait bien sûr les variables de
session (selon la façon dont tu détermines les pages que l'utilsiateur
verra il est également possible de lier le menu à une source de données
mis bon faisons déjà au plus simple pour l'instant).
--
Patrice
"Jean Claude" <jean-claude.mansion@wanadoo.fr> a écrit dans le message de
news: 47862e04$0$878$ba4acef3@news.orange.fr...
Bonjour Patrice
C'est pas possible le code ne veut pas prendre MenuItems(0)
Cordialement
Jean Claude
"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de news:
%230WhF3dUIHA.4196@TK2MSFTNGP04.phx.gbl...
Ok, je ferais donc tout simplement qq chose comme :
Menu1.MenuItems(0).NavigateUrl=Session("Page") dans le Page_Load pour
définir quelle est l'url à utiliser, la balise menuitem présente dans
la page ASPX utilisant déjà le bon "target" ce qui ouvrira la page
demandée dans une nouvelle fenêtre.
Cela devrait suffire à obtenir l'effet que tu veux. Le gérer dans
l'évènement click serait beaucoup plus compliqué voire impossible :
- seul le navigateur est susceptible d'ouvrir une page dans une
nouvelle fenêtre. Si ce point n'est pas déjà en place au traitement de
ce click, cela rend les choses bien compliquées
- il faudrait faire un redirect toi-même vers la page voulue
Avec la première approche, cela me semble plus directe. On se contente
d'indiquer au premier élément de menu, l'url de destination. Le
mécanisme habituel du menu permet alors d'obtenir le résultat voulu.
---
Patrice
"Jean Claude" <jean-claude.mansion@wanadoo.fr> a écrit dans le message
de news: 47832a60$0$847$ba4acef3@news.orange.fr...
Bonjour Patrice
Non le menu n'est pas construit dynamiquement (pour le test j'ai mis
qu'un Item, mais il y en aura plusieurs, c'est cet Item qui me pose
problème). le clic sur le menu selon l'internaute affiche une page
type definie par session("page"), et il y a trois possibilités de page
type, et toujours selon l'internaute le remplissage de la page se fait
dynamiquement par une requete sur une base de données Access.
Cordialement
J Claude
"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de
news: %23twXKsUUIHA.5360@TK2MSFTNGP03.phx.gbl...
Pour l'instant, je ne comprends pas le principe de fonctionnement de
ce menu.
Le menu est construit dynamiquement ? C'est ce que tu veux dire ?
Même dans ce cas, rien n'empêche de mettre une propriété target sur
chaque menuitem créé dynamiquement. De même, la valeur de
Session("NewPage") pourrait sans doute être utilisée pour
*construire* le menu plutôt que lors de la réaction au clic (je vois
mal d'ailleurs comment le menu fonctionne, le session("newpage")
étant toujours une valeur unique donc quel que soit l'option de menu
cliqué l'utilisateur ira toujours sur la même page ???) Si en
réaction au clic tu prévois ensuite de tester quel est l'élément
cliqué pour aller sur telle ou telle url, il est peut-être aussi
simple de définir ces urls lors de la création dynamique du menu...
Quelque chose comme :
Protected Sub Page_Load(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.Load
For i As Integer = 0 To 4
Dim mi As New MenuItem
mi.Text = "Page " & i.ToString
mi.NavigateUrl = "page" & i.ToString & ".aspx" ' Url calculée
dynamiquement, cela pourrait être un tbalau ou quoi que ce soit
d'autre
mi.Target = "_blank"
Menu1.Items.Add(mi)
Next
End Sub
Lorque la page HTML est rendue la première fois, toutes les
informations nécessaires à la navigation vers la page suivante sont
connues sans avoir à gérer l'évènement concernant le clic
(accessoirement le groupe ASP.NET serait peut-être plus spécifique à
ce problème).
--
Patrice
"Jean Claude" <jean-claude.mansion@wanadoo.fr> a écrit dans le
message de news: 47824a01$0$887$ba4acef3@news.orange.fr...
Bonjour Patrice
je ne peux pas mettre les "targets" (de même que le NavigateUrl ?)
dans les balises
asp:menuitem concernées car Session("NewPage") est variable, je l'ai
mis en dur pour tester le menu
Cordialement
JClaude
"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de
news: eMHnOuTUIHA.5132@TK2MSFTNGP02.phx.gbl...
Problème de logique. La modification de l'objet menu aura pour
effet de dire comment le menu sera généré dans la NOUVELLE page
actuellement en cours de construction d'où la nécessité de cliquer
deux fois pour obtenir le comportement voulu.
Bien voir le cycle de fonctionnement : le code .NET tourne sur le
serveur ce qui génère du code HTML qui repostera des demandes vers
le serveur sur demande de l'utilisateur. Ici modifier le code HTML
de la page *en cours de génération* ne sert à rien. C'est le code
HTML de la page *précédente* qui a été utilisé pour relancer une
demande et ce code HTML n'incluant pas le target blank on n'ouvre
effectivement pas la fenêtre dans une nouvelle fenêtre ce
coup-ci... Selon la logique de fonctionnement voulue (je vois que
le nom de la page est également en dur ??) le plus simple serait
sans doute de mettre les "targets" (de même que le NavigateUrl ?)
dans les balises asp:menuitem concernées ce qui pourrait
éventuellement rendre totalement inutile de gérer cet évènement.
--
Patrice
"Jean Claude" <jean-claude.mansion@wanadoo.fr> a écrit dans le
message de news: 478235bf$0$845$ba4acef3@news.orange.fr...
Bonjour
Sur un clic Menu je voudrais afficher une page sur une nouvelle
fenetre, avec le code ci-dessous, il me faut cliquer deux fois
pour obtenir cela, le premier clic affiche la page en remplacement
de la première. Pouvez-vous me dire ou est l'erreur
Protected Sub Menu1_MenuItemClick(ByVal sender As Object, _
ByVal e As System.Web.UI.WebControls.MenuEventArgs) _
Handles Menu1.MenuItemClick
Session("NewPage") = "~/FrmNewPage.aspx"
Menu1.Target = "_blank"
Menu1.SelectedItem.NavigateUrl = Session("NewPage")
Menu1.SelectedItem.Target = "_blank"
End Sub
Merci pour vos réponses
Cordialement
Jean Claude
Bonjour Patrice
Merci pour ta réponse, c'est OK
J'a deux autres problèmes peux-tu m'aider à trouver la réponse ?
-1- je veux afficher 6 images sur une page après les avoir
redimensionnées, j'ai créé une procédure pour cela :
Sub Dessineimage()
'chargement de l'image d'origine
Dim chemin As String = ""
chemin = Session("Rep") & Session("Image")
Dim newImage As Drawing.Image =
System.Drawing.Image.FromFile(Server.MapPath(chemin), True)
Image1.Width = Unit.Pixel(newImage.Width)
Image1.Height = Unit.Pixel(newImage.Height)
Dim lahauteur As Integer = 0
Dim lalargeur As Integer = 0
lahauteur = Image1.Height.Value
lalargeur = Image1.Width.Value
'taille maxi de la nouvelle image
Dim maxHeight As Integer = 150
'Nouvelles dimensions d'affichage
Image1.ImageUrl = "AR2E18M0R02/" & Session("Image")
Image1.Height = lahauteur * (maxHeight / lahauteur)
Image1.Width = lalargeur * (maxHeight / lahauteur)
End Sub
Pour utiliser cette procédure pour chaque image je voulais écrire
Image(I).Width et le code ne l'accepte pas
-2- j'ai créé un GridView avec une colonne avec HyperLinkField pour
pouvoir afficher une page dans une nouvelle fenetre (_target= ''blank'')
après un clic
j'ai besoin d'ajouter à l' HyperLinkField un OnCommand pour créer une
procédure LinkButton_Command car j'ai besoin d'effectuer une requete avant
d'afficher la page (la page étant variable et le code n'accepte pas
OnCommand
Merci pour tes réponses
Cordialement
Jean Claude
"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de news:Au temps pour moi c'est Items dans le code (n'hésite pas à jeter un oeil
dans Intellisense). Exemple :
- le menu est donc défini dans la page via :
<asp:Menu ID="Menu1" runat="server">
<Items>
<asp:MenuItem Target="_blank" Text="Page 1"/>
<asp:MenuItem Target="_blank" Text="Page 2"/>
<asp:MenuItem Target="_blank" Text="Page 3"/>
</Items>
</asp:Menu>
Le target est djéà mis mais comme la page exacte dépendra de
l'utilisateur connecté (voire de l'état actuel de l'appli ?) je ne mets
pas les adresses en dur...
Dans le code (Page_Load) cela donne :
Menu1.Items(0).NavigateUrl = "a.aspx"
Menu1.Items(1).NavigateUrl = "b.aspx"
Menu1.Items(2).NavigateUrl = "c.aspx"
A l'éxécution j'ai bien des liens vers les pages a, b,c qui s'ouvrent
dans une nouvelle fenêtre. Ton code utiliserait bien sûr les variables de
session (selon la façon dont tu détermines les pages que l'utilsiateur
verra il est également possible de lier le menu à une source de données
mis bon faisons déjà au plus simple pour l'instant).
--
Patrice
"Jean Claude" a écrit dans le message de
news: 47862e04$0$878$Bonjour Patrice
C'est pas possible le code ne veut pas prendre MenuItems(0)
Cordialement
Jean Claude
"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de news:
%Ok, je ferais donc tout simplement qq chose comme :
Menu1.MenuItems(0).NavigateUrl=Session("Page") dans le Page_Load pour
définir quelle est l'url à utiliser, la balise menuitem présente dans
la page ASPX utilisant déjà le bon "target" ce qui ouvrira la page
demandée dans une nouvelle fenêtre.
Cela devrait suffire à obtenir l'effet que tu veux. Le gérer dans
l'évènement click serait beaucoup plus compliqué voire impossible :
- seul le navigateur est susceptible d'ouvrir une page dans une
nouvelle fenêtre. Si ce point n'est pas déjà en place au traitement de
ce click, cela rend les choses bien compliquées
- il faudrait faire un redirect toi-même vers la page voulue
Avec la première approche, cela me semble plus directe. On se contente
d'indiquer au premier élément de menu, l'url de destination. Le
mécanisme habituel du menu permet alors d'obtenir le résultat voulu.
---
Patrice
"Jean Claude" a écrit dans le message
de news: 47832a60$0$847$Bonjour Patrice
Non le menu n'est pas construit dynamiquement (pour le test j'ai mis
qu'un Item, mais il y en aura plusieurs, c'est cet Item qui me pose
problème). le clic sur le menu selon l'internaute affiche une page
type definie par session("page"), et il y a trois possibilités de page
type, et toujours selon l'internaute le remplissage de la page se fait
dynamiquement par une requete sur une base de données Access.
Cordialement
J Claude
"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de
news: %Pour l'instant, je ne comprends pas le principe de fonctionnement de
ce menu.
Le menu est construit dynamiquement ? C'est ce que tu veux dire ?
Même dans ce cas, rien n'empêche de mettre une propriété target sur
chaque menuitem créé dynamiquement. De même, la valeur de
Session("NewPage") pourrait sans doute être utilisée pour
*construire* le menu plutôt que lors de la réaction au clic (je vois
mal d'ailleurs comment le menu fonctionne, le session("newpage")
étant toujours une valeur unique donc quel que soit l'option de menu
cliqué l'utilisateur ira toujours sur la même page ???) Si en
réaction au clic tu prévois ensuite de tester quel est l'élément
cliqué pour aller sur telle ou telle url, il est peut-être aussi
simple de définir ces urls lors de la création dynamique du menu...
Quelque chose comme :
Protected Sub Page_Load(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.Load
For i As Integer = 0 To 4
Dim mi As New MenuItem
mi.Text = "Page " & i.ToString
mi.NavigateUrl = "page" & i.ToString & ".aspx" ' Url calculée
dynamiquement, cela pourrait être un tbalau ou quoi que ce soit
d'autre
mi.Target = "_blank"
Menu1.Items.Add(mi)
Next
End Sub
Lorque la page HTML est rendue la première fois, toutes les
informations nécessaires à la navigation vers la page suivante sont
connues sans avoir à gérer l'évènement concernant le clic
(accessoirement le groupe ASP.NET serait peut-être plus spécifique à
ce problème).
--
Patrice
"Jean Claude" a écrit dans le
message de news: 47824a01$0$887$Bonjour Patrice
je ne peux pas mettre les "targets" (de même que le NavigateUrl ?)
dans les balises
asp:menuitem concernées car Session("NewPage") est variable, je l'ai
mis en dur pour tester le menu
Cordialement
JClaude
"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de
news:Problème de logique. La modification de l'objet menu aura pour
effet de dire comment le menu sera généré dans la NOUVELLE page
actuellement en cours de construction d'où la nécessité de cliquer
deux fois pour obtenir le comportement voulu.
Bien voir le cycle de fonctionnement : le code .NET tourne sur le
serveur ce qui génère du code HTML qui repostera des demandes vers
le serveur sur demande de l'utilisateur. Ici modifier le code HTML
de la page *en cours de génération* ne sert à rien. C'est le code
HTML de la page *précédente* qui a été utilisé pour relancer une
demande et ce code HTML n'incluant pas le target blank on n'ouvre
effectivement pas la fenêtre dans une nouvelle fenêtre ce
coup-ci... Selon la logique de fonctionnement voulue (je vois que
le nom de la page est également en dur ??) le plus simple serait
sans doute de mettre les "targets" (de même que le NavigateUrl ?)
dans les balises asp:menuitem concernées ce qui pourrait
éventuellement rendre totalement inutile de gérer cet évènement.
--
Patrice
"Jean Claude" a écrit dans le
message de news: 478235bf$0$845$Bonjour
Sur un clic Menu je voudrais afficher une page sur une nouvelle
fenetre, avec le code ci-dessous, il me faut cliquer deux fois
pour obtenir cela, le premier clic affiche la page en remplacement
de la première. Pouvez-vous me dire ou est l'erreur
Protected Sub Menu1_MenuItemClick(ByVal sender As Object, _
ByVal e As System.Web.UI.WebControls.MenuEventArgs) _
Handles Menu1.MenuItemClick
Session("NewPage") = "~/FrmNewPage.aspx"
Menu1.Target = "_blank"
Menu1.SelectedItem.NavigateUrl = Session("NewPage")
Menu1.SelectedItem.Target = "_blank"
End Sub
Merci pour vos réponses
Cordialement
Jean Claude
#1 Pour pouvoir le faire il faudrait que Image soit un tableau ? Si tu as
des contrôles disparates Image1, Image2, Image3 le mieux que tu puisses
faire serait qq chose comme :
For i As Integer=1 to Max
thisImage=Me.FindControl("Image" & i) ' Trouve le contrôle ImageX
' Traitement
Next
Chercher FindContriol pour des compléments...
Egalement le "retaillage" est bien sûr purement fait en terme de
présentation. Avec cette méthode, si le fichier de départ est voluminuex,
il sera toujours tout aussi volumineux même si il apparaitra en plus
petit...
#2 Je dirais utilise alors un LinkButton au lieu d'un hyperlinkfield ?
Enfin, je pense que le mieux est tout de même d'ajouter tes questions en
tant que nouveau sujet de discussion pour que d'autres personnes opuissent
t'aider...
Eventuellement chaque question dans une nouvelle discussion pour que les
personnes puissent répondre séparemment à tes différents problèmes...
--
Patrice
"Jean Claude" a écrit dans le message de
news: 47871860$0$887$Bonjour Patrice
Merci pour ta réponse, c'est OK
J'a deux autres problèmes peux-tu m'aider à trouver la réponse ?
-1- je veux afficher 6 images sur une page après les avoir
redimensionnées, j'ai créé une procédure pour cela :
Sub Dessineimage()
'chargement de l'image d'origine
Dim chemin As String = ""
chemin = Session("Rep") & Session("Image")
Dim newImage As Drawing.Image =
System.Drawing.Image.FromFile(Server.MapPath(chemin), True)
Image1.Width = Unit.Pixel(newImage.Width)
Image1.Height = Unit.Pixel(newImage.Height)
Dim lahauteur As Integer = 0
Dim lalargeur As Integer = 0
lahauteur = Image1.Height.Value
lalargeur = Image1.Width.Value
'taille maxi de la nouvelle image
Dim maxHeight As Integer = 150
'Nouvelles dimensions d'affichage
Image1.ImageUrl = "AR2E18M0R02/" & Session("Image")
Image1.Height = lahauteur * (maxHeight / lahauteur)
Image1.Width = lalargeur * (maxHeight / lahauteur)
End Sub
Pour utiliser cette procédure pour chaque image je voulais écrire
Image(I).Width et le code ne l'accepte pas
-2- j'ai créé un GridView avec une colonne avec HyperLinkField pour
pouvoir afficher une page dans une nouvelle fenetre (_target= ''blank'')
après un clic
j'ai besoin d'ajouter à l' HyperLinkField un OnCommand pour créer une
procédure LinkButton_Command car j'ai besoin d'effectuer une requete
avant d'afficher la page (la page étant variable et le code n'accepte pas
OnCommand
Merci pour tes réponses
Cordialement
Jean Claude
"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de news:Au temps pour moi c'est Items dans le code (n'hésite pas à jeter un oeil
dans Intellisense). Exemple :
- le menu est donc défini dans la page via :
<asp:Menu ID="Menu1" runat="server">
<Items>
<asp:MenuItem Target="_blank" Text="Page 1"/>
<asp:MenuItem Target="_blank" Text="Page 2"/>
<asp:MenuItem Target="_blank" Text="Page 3"/>
</Items>
</asp:Menu>
Le target est djéà mis mais comme la page exacte dépendra de
l'utilisateur connecté (voire de l'état actuel de l'appli ?) je ne mets
pas les adresses en dur...
Dans le code (Page_Load) cela donne :
Menu1.Items(0).NavigateUrl = "a.aspx"
Menu1.Items(1).NavigateUrl = "b.aspx"
Menu1.Items(2).NavigateUrl = "c.aspx"
A l'éxécution j'ai bien des liens vers les pages a, b,c qui s'ouvrent
dans une nouvelle fenêtre. Ton code utiliserait bien sûr les variables
de session (selon la façon dont tu détermines les pages que
l'utilsiateur verra il est également possible de lier le menu à une
source de données mis bon faisons déjà au plus simple pour l'instant).
--
Patrice
"Jean Claude" a écrit dans le message
de news: 47862e04$0$878$Bonjour Patrice
C'est pas possible le code ne veut pas prendre MenuItems(0)
Cordialement
Jean Claude
"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de
news: %Ok, je ferais donc tout simplement qq chose comme :
Menu1.MenuItems(0).NavigateUrl=Session("Page") dans le Page_Load pour
définir quelle est l'url à utiliser, la balise menuitem présente dans
la page ASPX utilisant déjà le bon "target" ce qui ouvrira la page
demandée dans une nouvelle fenêtre.
Cela devrait suffire à obtenir l'effet que tu veux. Le gérer dans
l'évènement click serait beaucoup plus compliqué voire impossible :
- seul le navigateur est susceptible d'ouvrir une page dans une
nouvelle fenêtre. Si ce point n'est pas déjà en place au traitement de
ce click, cela rend les choses bien compliquées
- il faudrait faire un redirect toi-même vers la page voulue
Avec la première approche, cela me semble plus directe. On se contente
d'indiquer au premier élément de menu, l'url de destination. Le
mécanisme habituel du menu permet alors d'obtenir le résultat voulu.
---
Patrice
"Jean Claude" a écrit dans le message
de news: 47832a60$0$847$Bonjour Patrice
Non le menu n'est pas construit dynamiquement (pour le test j'ai mis
qu'un Item, mais il y en aura plusieurs, c'est cet Item qui me pose
problème). le clic sur le menu selon l'internaute affiche une page
type definie par session("page"), et il y a trois possibilités de
page type, et toujours selon l'internaute le remplissage de la page
se fait dynamiquement par une requete sur une base de données Access.
Cordialement
J Claude
"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de
news: %Pour l'instant, je ne comprends pas le principe de fonctionnement de
ce menu.
Le menu est construit dynamiquement ? C'est ce que tu veux dire ?
Même dans ce cas, rien n'empêche de mettre une propriété target sur
chaque menuitem créé dynamiquement. De même, la valeur de
Session("NewPage") pourrait sans doute être utilisée pour
*construire* le menu plutôt que lors de la réaction au clic (je vois
mal d'ailleurs comment le menu fonctionne, le session("newpage")
étant toujours une valeur unique donc quel que soit l'option de menu
cliqué l'utilisateur ira toujours sur la même page ???) Si en
réaction au clic tu prévois ensuite de tester quel est l'élément
cliqué pour aller sur telle ou telle url, il est peut-être aussi
simple de définir ces urls lors de la création dynamique du menu...
Quelque chose comme :
Protected Sub Page_Load(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.Load
For i As Integer = 0 To 4
Dim mi As New MenuItem
mi.Text = "Page " & i.ToString
mi.NavigateUrl = "page" & i.ToString & ".aspx" ' Url calculée
dynamiquement, cela pourrait être un tbalau ou quoi que ce soit
d'autre
mi.Target = "_blank"
Menu1.Items.Add(mi)
Next
End Sub
Lorque la page HTML est rendue la première fois, toutes les
informations nécessaires à la navigation vers la page suivante sont
connues sans avoir à gérer l'évènement concernant le clic
(accessoirement le groupe ASP.NET serait peut-être plus spécifique à
ce problème).
--
Patrice
"Jean Claude" a écrit dans le
message de news: 47824a01$0$887$Bonjour Patrice
je ne peux pas mettre les "targets" (de même que le NavigateUrl ?)
dans les balises
asp:menuitem concernées car Session("NewPage") est variable, je
l'ai mis en dur pour tester le menu
Cordialement
JClaude
"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de
news:Problème de logique. La modification de l'objet menu aura pour
effet de dire comment le menu sera généré dans la NOUVELLE page
actuellement en cours de construction d'où la nécessité de cliquer
deux fois pour obtenir le comportement voulu.
Bien voir le cycle de fonctionnement : le code .NET tourne sur le
serveur ce qui génère du code HTML qui repostera des demandes vers
le serveur sur demande de l'utilisateur. Ici modifier le code HTML
de la page *en cours de génération* ne sert à rien. C'est le code
HTML de la page *précédente* qui a été utilisé pour relancer une
demande et ce code HTML n'incluant pas le target blank on n'ouvre
effectivement pas la fenêtre dans une nouvelle fenêtre ce
coup-ci... Selon la logique de fonctionnement voulue (je vois que
le nom de la page est également en dur ??) le plus simple serait
sans doute de mettre les "targets" (de même que le NavigateUrl ?)
dans les balises asp:menuitem concernées ce qui pourrait
éventuellement rendre totalement inutile de gérer cet évènement.
--
Patrice
"Jean Claude" a écrit dans le
message de news: 478235bf$0$845$Bonjour
Sur un clic Menu je voudrais afficher une page sur une nouvelle
fenetre, avec le code ci-dessous, il me faut cliquer deux fois
pour obtenir cela, le premier clic affiche la page en
remplacement de la première. Pouvez-vous me dire ou est l'erreur
Protected Sub Menu1_MenuItemClick(ByVal sender As Object, _
ByVal e As System.Web.UI.WebControls.MenuEventArgs) _
Handles Menu1.MenuItemClick
Session("NewPage") = "~/FrmNewPage.aspx"
Menu1.Target = "_blank"
Menu1.SelectedItem.NavigateUrl = Session("NewPage")
Menu1.SelectedItem.Target = "_blank"
End Sub
Merci pour vos réponses
Cordialement
Jean Claude
#1 Pour pouvoir le faire il faudrait que Image soit un tableau ? Si tu as
des contrôles disparates Image1, Image2, Image3 le mieux que tu puisses
faire serait qq chose comme :
For i As Integer=1 to Max
thisImage=Me.FindControl("Image" & i) ' Trouve le contrôle ImageX
' Traitement
Next
Chercher FindContriol pour des compléments...
Egalement le "retaillage" est bien sûr purement fait en terme de
présentation. Avec cette méthode, si le fichier de départ est voluminuex,
il sera toujours tout aussi volumineux même si il apparaitra en plus
petit...
#2 Je dirais utilise alors un LinkButton au lieu d'un hyperlinkfield ?
Enfin, je pense que le mieux est tout de même d'ajouter tes questions en
tant que nouveau sujet de discussion pour que d'autres personnes opuissent
t'aider...
Eventuellement chaque question dans une nouvelle discussion pour que les
personnes puissent répondre séparemment à tes différents problèmes...
--
Patrice
"Jean Claude" <jean-claude.mansion@wanadoo.fr> a écrit dans le message de
news: 47871860$0$887$ba4acef3@news.orange.fr...
Bonjour Patrice
Merci pour ta réponse, c'est OK
J'a deux autres problèmes peux-tu m'aider à trouver la réponse ?
-1- je veux afficher 6 images sur une page après les avoir
redimensionnées, j'ai créé une procédure pour cela :
Sub Dessineimage()
'chargement de l'image d'origine
Dim chemin As String = ""
chemin = Session("Rep") & Session("Image")
Dim newImage As Drawing.Image =
System.Drawing.Image.FromFile(Server.MapPath(chemin), True)
Image1.Width = Unit.Pixel(newImage.Width)
Image1.Height = Unit.Pixel(newImage.Height)
Dim lahauteur As Integer = 0
Dim lalargeur As Integer = 0
lahauteur = Image1.Height.Value
lalargeur = Image1.Width.Value
'taille maxi de la nouvelle image
Dim maxHeight As Integer = 150
'Nouvelles dimensions d'affichage
Image1.ImageUrl = "AR2E18M0R02/" & Session("Image")
Image1.Height = lahauteur * (maxHeight / lahauteur)
Image1.Width = lalargeur * (maxHeight / lahauteur)
End Sub
Pour utiliser cette procédure pour chaque image je voulais écrire
Image(I).Width et le code ne l'accepte pas
-2- j'ai créé un GridView avec une colonne avec HyperLinkField pour
pouvoir afficher une page dans une nouvelle fenetre (_target= ''blank'')
après un clic
j'ai besoin d'ajouter à l' HyperLinkField un OnCommand pour créer une
procédure LinkButton_Command car j'ai besoin d'effectuer une requete
avant d'afficher la page (la page étant variable et le code n'accepte pas
OnCommand
Merci pour tes réponses
Cordialement
Jean Claude
"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de news:
ucrKX15UIHA.4360@TK2MSFTNGP06.phx.gbl...
Au temps pour moi c'est Items dans le code (n'hésite pas à jeter un oeil
dans Intellisense). Exemple :
- le menu est donc défini dans la page via :
<asp:Menu ID="Menu1" runat="server">
<Items>
<asp:MenuItem Target="_blank" Text="Page 1"/>
<asp:MenuItem Target="_blank" Text="Page 2"/>
<asp:MenuItem Target="_blank" Text="Page 3"/>
</Items>
</asp:Menu>
Le target est djéà mis mais comme la page exacte dépendra de
l'utilisateur connecté (voire de l'état actuel de l'appli ?) je ne mets
pas les adresses en dur...
Dans le code (Page_Load) cela donne :
Menu1.Items(0).NavigateUrl = "a.aspx"
Menu1.Items(1).NavigateUrl = "b.aspx"
Menu1.Items(2).NavigateUrl = "c.aspx"
A l'éxécution j'ai bien des liens vers les pages a, b,c qui s'ouvrent
dans une nouvelle fenêtre. Ton code utiliserait bien sûr les variables
de session (selon la façon dont tu détermines les pages que
l'utilsiateur verra il est également possible de lier le menu à une
source de données mis bon faisons déjà au plus simple pour l'instant).
--
Patrice
"Jean Claude" <jean-claude.mansion@wanadoo.fr> a écrit dans le message
de news: 47862e04$0$878$ba4acef3@news.orange.fr...
Bonjour Patrice
C'est pas possible le code ne veut pas prendre MenuItems(0)
Cordialement
Jean Claude
"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de
news: %230WhF3dUIHA.4196@TK2MSFTNGP04.phx.gbl...
Ok, je ferais donc tout simplement qq chose comme :
Menu1.MenuItems(0).NavigateUrl=Session("Page") dans le Page_Load pour
définir quelle est l'url à utiliser, la balise menuitem présente dans
la page ASPX utilisant déjà le bon "target" ce qui ouvrira la page
demandée dans une nouvelle fenêtre.
Cela devrait suffire à obtenir l'effet que tu veux. Le gérer dans
l'évènement click serait beaucoup plus compliqué voire impossible :
- seul le navigateur est susceptible d'ouvrir une page dans une
nouvelle fenêtre. Si ce point n'est pas déjà en place au traitement de
ce click, cela rend les choses bien compliquées
- il faudrait faire un redirect toi-même vers la page voulue
Avec la première approche, cela me semble plus directe. On se contente
d'indiquer au premier élément de menu, l'url de destination. Le
mécanisme habituel du menu permet alors d'obtenir le résultat voulu.
---
Patrice
"Jean Claude" <jean-claude.mansion@wanadoo.fr> a écrit dans le message
de news: 47832a60$0$847$ba4acef3@news.orange.fr...
Bonjour Patrice
Non le menu n'est pas construit dynamiquement (pour le test j'ai mis
qu'un Item, mais il y en aura plusieurs, c'est cet Item qui me pose
problème). le clic sur le menu selon l'internaute affiche une page
type definie par session("page"), et il y a trois possibilités de
page type, et toujours selon l'internaute le remplissage de la page
se fait dynamiquement par une requete sur une base de données Access.
Cordialement
J Claude
"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de
news: %23twXKsUUIHA.5360@TK2MSFTNGP03.phx.gbl...
Pour l'instant, je ne comprends pas le principe de fonctionnement de
ce menu.
Le menu est construit dynamiquement ? C'est ce que tu veux dire ?
Même dans ce cas, rien n'empêche de mettre une propriété target sur
chaque menuitem créé dynamiquement. De même, la valeur de
Session("NewPage") pourrait sans doute être utilisée pour
*construire* le menu plutôt que lors de la réaction au clic (je vois
mal d'ailleurs comment le menu fonctionne, le session("newpage")
étant toujours une valeur unique donc quel que soit l'option de menu
cliqué l'utilisateur ira toujours sur la même page ???) Si en
réaction au clic tu prévois ensuite de tester quel est l'élément
cliqué pour aller sur telle ou telle url, il est peut-être aussi
simple de définir ces urls lors de la création dynamique du menu...
Quelque chose comme :
Protected Sub Page_Load(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.Load
For i As Integer = 0 To 4
Dim mi As New MenuItem
mi.Text = "Page " & i.ToString
mi.NavigateUrl = "page" & i.ToString & ".aspx" ' Url calculée
dynamiquement, cela pourrait être un tbalau ou quoi que ce soit
d'autre
mi.Target = "_blank"
Menu1.Items.Add(mi)
Next
End Sub
Lorque la page HTML est rendue la première fois, toutes les
informations nécessaires à la navigation vers la page suivante sont
connues sans avoir à gérer l'évènement concernant le clic
(accessoirement le groupe ASP.NET serait peut-être plus spécifique à
ce problème).
--
Patrice
"Jean Claude" <jean-claude.mansion@wanadoo.fr> a écrit dans le
message de news: 47824a01$0$887$ba4acef3@news.orange.fr...
Bonjour Patrice
je ne peux pas mettre les "targets" (de même que le NavigateUrl ?)
dans les balises
asp:menuitem concernées car Session("NewPage") est variable, je
l'ai mis en dur pour tester le menu
Cordialement
JClaude
"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de
news: eMHnOuTUIHA.5132@TK2MSFTNGP02.phx.gbl...
Problème de logique. La modification de l'objet menu aura pour
effet de dire comment le menu sera généré dans la NOUVELLE page
actuellement en cours de construction d'où la nécessité de cliquer
deux fois pour obtenir le comportement voulu.
Bien voir le cycle de fonctionnement : le code .NET tourne sur le
serveur ce qui génère du code HTML qui repostera des demandes vers
le serveur sur demande de l'utilisateur. Ici modifier le code HTML
de la page *en cours de génération* ne sert à rien. C'est le code
HTML de la page *précédente* qui a été utilisé pour relancer une
demande et ce code HTML n'incluant pas le target blank on n'ouvre
effectivement pas la fenêtre dans une nouvelle fenêtre ce
coup-ci... Selon la logique de fonctionnement voulue (je vois que
le nom de la page est également en dur ??) le plus simple serait
sans doute de mettre les "targets" (de même que le NavigateUrl ?)
dans les balises asp:menuitem concernées ce qui pourrait
éventuellement rendre totalement inutile de gérer cet évènement.
--
Patrice
"Jean Claude" <jean-claude.mansion@wanadoo.fr> a écrit dans le
message de news: 478235bf$0$845$ba4acef3@news.orange.fr...
Bonjour
Sur un clic Menu je voudrais afficher une page sur une nouvelle
fenetre, avec le code ci-dessous, il me faut cliquer deux fois
pour obtenir cela, le premier clic affiche la page en
remplacement de la première. Pouvez-vous me dire ou est l'erreur
Protected Sub Menu1_MenuItemClick(ByVal sender As Object, _
ByVal e As System.Web.UI.WebControls.MenuEventArgs) _
Handles Menu1.MenuItemClick
Session("NewPage") = "~/FrmNewPage.aspx"
Menu1.Target = "_blank"
Menu1.SelectedItem.NavigateUrl = Session("NewPage")
Menu1.SelectedItem.Target = "_blank"
End Sub
Merci pour vos réponses
Cordialement
Jean Claude
#1 Pour pouvoir le faire il faudrait que Image soit un tableau ? Si tu as
des contrôles disparates Image1, Image2, Image3 le mieux que tu puisses
faire serait qq chose comme :
For i As Integer=1 to Max
thisImage=Me.FindControl("Image" & i) ' Trouve le contrôle ImageX
' Traitement
Next
Chercher FindContriol pour des compléments...
Egalement le "retaillage" est bien sûr purement fait en terme de
présentation. Avec cette méthode, si le fichier de départ est voluminuex,
il sera toujours tout aussi volumineux même si il apparaitra en plus
petit...
#2 Je dirais utilise alors un LinkButton au lieu d'un hyperlinkfield ?
Enfin, je pense que le mieux est tout de même d'ajouter tes questions en
tant que nouveau sujet de discussion pour que d'autres personnes opuissent
t'aider...
Eventuellement chaque question dans une nouvelle discussion pour que les
personnes puissent répondre séparemment à tes différents problèmes...
--
Patrice
"Jean Claude" a écrit dans le message de
news: 47871860$0$887$Bonjour Patrice
Merci pour ta réponse, c'est OK
J'a deux autres problèmes peux-tu m'aider à trouver la réponse ?
-1- je veux afficher 6 images sur une page après les avoir
redimensionnées, j'ai créé une procédure pour cela :
Sub Dessineimage()
'chargement de l'image d'origine
Dim chemin As String = ""
chemin = Session("Rep") & Session("Image")
Dim newImage As Drawing.Image =
System.Drawing.Image.FromFile(Server.MapPath(chemin), True)
Image1.Width = Unit.Pixel(newImage.Width)
Image1.Height = Unit.Pixel(newImage.Height)
Dim lahauteur As Integer = 0
Dim lalargeur As Integer = 0
lahauteur = Image1.Height.Value
lalargeur = Image1.Width.Value
'taille maxi de la nouvelle image
Dim maxHeight As Integer = 150
'Nouvelles dimensions d'affichage
Image1.ImageUrl = "AR2E18M0R02/" & Session("Image")
Image1.Height = lahauteur * (maxHeight / lahauteur)
Image1.Width = lalargeur * (maxHeight / lahauteur)
End Sub
Pour utiliser cette procédure pour chaque image je voulais écrire
Image(I).Width et le code ne l'accepte pas
-2- j'ai créé un GridView avec une colonne avec HyperLinkField pour
pouvoir afficher une page dans une nouvelle fenetre (_target= ''blank'')
après un clic
j'ai besoin d'ajouter à l' HyperLinkField un OnCommand pour créer une
procédure LinkButton_Command car j'ai besoin d'effectuer une requete
avant d'afficher la page (la page étant variable et le code n'accepte pas
OnCommand
Merci pour tes réponses
Cordialement
Jean Claude
"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de news:Au temps pour moi c'est Items dans le code (n'hésite pas à jeter un oeil
dans Intellisense). Exemple :
- le menu est donc défini dans la page via :
<asp:Menu ID="Menu1" runat="server">
<Items>
<asp:MenuItem Target="_blank" Text="Page 1"/>
<asp:MenuItem Target="_blank" Text="Page 2"/>
<asp:MenuItem Target="_blank" Text="Page 3"/>
</Items>
</asp:Menu>
Le target est djéà mis mais comme la page exacte dépendra de
l'utilisateur connecté (voire de l'état actuel de l'appli ?) je ne mets
pas les adresses en dur...
Dans le code (Page_Load) cela donne :
Menu1.Items(0).NavigateUrl = "a.aspx"
Menu1.Items(1).NavigateUrl = "b.aspx"
Menu1.Items(2).NavigateUrl = "c.aspx"
A l'éxécution j'ai bien des liens vers les pages a, b,c qui s'ouvrent
dans une nouvelle fenêtre. Ton code utiliserait bien sûr les variables
de session (selon la façon dont tu détermines les pages que
l'utilsiateur verra il est également possible de lier le menu à une
source de données mis bon faisons déjà au plus simple pour l'instant).
--
Patrice
"Jean Claude" a écrit dans le message
de news: 47862e04$0$878$Bonjour Patrice
C'est pas possible le code ne veut pas prendre MenuItems(0)
Cordialement
Jean Claude
"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de
news: %Ok, je ferais donc tout simplement qq chose comme :
Menu1.MenuItems(0).NavigateUrl=Session("Page") dans le Page_Load pour
définir quelle est l'url à utiliser, la balise menuitem présente dans
la page ASPX utilisant déjà le bon "target" ce qui ouvrira la page
demandée dans une nouvelle fenêtre.
Cela devrait suffire à obtenir l'effet que tu veux. Le gérer dans
l'évènement click serait beaucoup plus compliqué voire impossible :
- seul le navigateur est susceptible d'ouvrir une page dans une
nouvelle fenêtre. Si ce point n'est pas déjà en place au traitement de
ce click, cela rend les choses bien compliquées
- il faudrait faire un redirect toi-même vers la page voulue
Avec la première approche, cela me semble plus directe. On se contente
d'indiquer au premier élément de menu, l'url de destination. Le
mécanisme habituel du menu permet alors d'obtenir le résultat voulu.
---
Patrice
"Jean Claude" a écrit dans le message
de news: 47832a60$0$847$Bonjour Patrice
Non le menu n'est pas construit dynamiquement (pour le test j'ai mis
qu'un Item, mais il y en aura plusieurs, c'est cet Item qui me pose
problème). le clic sur le menu selon l'internaute affiche une page
type definie par session("page"), et il y a trois possibilités de
page type, et toujours selon l'internaute le remplissage de la page
se fait dynamiquement par une requete sur une base de données Access.
Cordialement
J Claude
"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de
news: %Pour l'instant, je ne comprends pas le principe de fonctionnement de
ce menu.
Le menu est construit dynamiquement ? C'est ce que tu veux dire ?
Même dans ce cas, rien n'empêche de mettre une propriété target sur
chaque menuitem créé dynamiquement. De même, la valeur de
Session("NewPage") pourrait sans doute être utilisée pour
*construire* le menu plutôt que lors de la réaction au clic (je vois
mal d'ailleurs comment le menu fonctionne, le session("newpage")
étant toujours une valeur unique donc quel que soit l'option de menu
cliqué l'utilisateur ira toujours sur la même page ???) Si en
réaction au clic tu prévois ensuite de tester quel est l'élément
cliqué pour aller sur telle ou telle url, il est peut-être aussi
simple de définir ces urls lors de la création dynamique du menu...
Quelque chose comme :
Protected Sub Page_Load(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.Load
For i As Integer = 0 To 4
Dim mi As New MenuItem
mi.Text = "Page " & i.ToString
mi.NavigateUrl = "page" & i.ToString & ".aspx" ' Url calculée
dynamiquement, cela pourrait être un tbalau ou quoi que ce soit
d'autre
mi.Target = "_blank"
Menu1.Items.Add(mi)
Next
End Sub
Lorque la page HTML est rendue la première fois, toutes les
informations nécessaires à la navigation vers la page suivante sont
connues sans avoir à gérer l'évènement concernant le clic
(accessoirement le groupe ASP.NET serait peut-être plus spécifique à
ce problème).
--
Patrice
"Jean Claude" a écrit dans le
message de news: 47824a01$0$887$Bonjour Patrice
je ne peux pas mettre les "targets" (de même que le NavigateUrl ?)
dans les balises
asp:menuitem concernées car Session("NewPage") est variable, je
l'ai mis en dur pour tester le menu
Cordialement
JClaude
"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de
news:Problème de logique. La modification de l'objet menu aura pour
effet de dire comment le menu sera généré dans la NOUVELLE page
actuellement en cours de construction d'où la nécessité de cliquer
deux fois pour obtenir le comportement voulu.
Bien voir le cycle de fonctionnement : le code .NET tourne sur le
serveur ce qui génère du code HTML qui repostera des demandes vers
le serveur sur demande de l'utilisateur. Ici modifier le code HTML
de la page *en cours de génération* ne sert à rien. C'est le code
HTML de la page *précédente* qui a été utilisé pour relancer une
demande et ce code HTML n'incluant pas le target blank on n'ouvre
effectivement pas la fenêtre dans une nouvelle fenêtre ce
coup-ci... Selon la logique de fonctionnement voulue (je vois que
le nom de la page est également en dur ??) le plus simple serait
sans doute de mettre les "targets" (de même que le NavigateUrl ?)
dans les balises asp:menuitem concernées ce qui pourrait
éventuellement rendre totalement inutile de gérer cet évènement.
--
Patrice
"Jean Claude" a écrit dans le
message de news: 478235bf$0$845$Bonjour
Sur un clic Menu je voudrais afficher une page sur une nouvelle
fenetre, avec le code ci-dessous, il me faut cliquer deux fois
pour obtenir cela, le premier clic affiche la page en
remplacement de la première. Pouvez-vous me dire ou est l'erreur
Protected Sub Menu1_MenuItemClick(ByVal sender As Object, _
ByVal e As System.Web.UI.WebControls.MenuEventArgs) _
Handles Menu1.MenuItemClick
Session("NewPage") = "~/FrmNewPage.aspx"
Menu1.Target = "_blank"
Menu1.SelectedItem.NavigateUrl = Session("NewPage")
Menu1.SelectedItem.Target = "_blank"
End Sub
Merci pour vos réponses
Cordialement
Jean Claude