Je veux faire un Response.Redirect("MyPage.aspx")
mais l'ouvrir dans une nouvelle fenêtre de navigateur. J'ai déjà fait cela sans utiliser la méthode de script de registre JavaScript. Je ne me souviens pas comment?
c#
asp.net
response.redirect
hims056
la source
la source
OnClientClick="aspnetForm.target ='_blank';"
j'ai dû utiliserOnClientClick="document.getElementById('Form').target ='_blank';"
Vous pouvez l'utiliser comme méthode d'extension
Avec cela, vous obtenez une belle substitution sur l'objet de réponse réel
la source
Parce que Response.Redirect est lancé sur le serveur, vous ne pouvez pas le faire en utilisant cela.
Si vous pouvez écrire directement dans le flux de réponse, vous pouvez essayer quelque chose comme:
la source
Créez votre URL via le gestionnaire d'événements Click:
Ensuite:
la source
L'astuce de la forme fixe est intéressante, mais:
Vous n'aurez peut-être pas accès au code de ce qui se charge dans la nouvelle fenêtre.
Même si vous le faites, vous dépendez du fait qu'il se charge toujours, sans erreur.
Et vous dépendez du fait que l'utilisateur ne cliquera pas sur un autre bouton avant que l'autre page n'ait la possibilité de charger et d'exécuter le formulaire de correction.
Je suggérerais de faire ceci à la place:
Et configurez fixform sur la même page , ressemblant à ceci:
la source
Vous pouvez également utiliser dans le code derrière de cette façon
la source
window.open('page.aspx','_blank');
il l'ouvre toujours dans une nouvelle fenêtre avec la barre de navigation désactivée et les boutons de navigation manquants au lieu d'un nouvel onglet.Ce n'est pas possible avec Response.Redirect car cela se produit côté serveur et ne peut pas diriger votre navigateur pour qu'il entreprenne cette action. Que resterait-il dans la fenêtre initiale? Une page blanche?
la source
La méthode popup donnera une question sécurisée au visiteur.
voici ma solution simple: et travailler partout.
la source
Source: http://dotnetchris.wordpress.com/2008/11/04/c-aspnet-responseredirect-open-into-new-window/
la source
Si vous pouvez restructurer votre code afin que vous n'ayez pas besoin de publier, vous pouvez utiliser ce code dans l'événement PreRender du bouton:
la source
Vous pouvez également utiliser le code suivant pour ouvrir une nouvelle page dans un nouvel onglet.
Et appelez simplement Response.Redirect ("yourPage.aspx"); derrière l'événement de bouton.
la source
J'utilise toujours ce code ... Utilisez ce code
la source
Voici une version de jQuery basée sur la réponse de @takrl et @tom ci-dessus. Remarque: pas de formidable codé en dur (nommé aspnetForm ci-dessus) et n'utilise pas non plus de références directes form.target que Firefox peut trouver problématiques:
Puis dans votre fichier js référencé sur la MÊME page:
la source
J'ai utilisé Hyperlink au lieu de LinkButton et cela fonctionnait très bien, il a la propriété Target donc cela a résolu mon problème. Il y avait la solution avec Response.Write mais cela gâchait ma mise en page, et celle avec ScriptManager, à chaque actualisation ou retour, rouvrait la fenêtre. Voici donc comment je l'ai résolu:
la source
Vous pouvez utiliser le Page.RegisterStartupScript pour vous assurer que le javascript se déclenche lors du chargement de la page.
la source
vous pouvez ouvrir une nouvelle fenêtre à partir du code asp.net derrière en utilisant ajax comme je l'ai fait ici http://alexandershapovalov.com/open-new-window-from-code-behind-in-aspnet-68/
la source
Aucun des exemples précédents n'a fonctionné pour moi, j'ai donc décidé de publier ma solution. Dans les événements de clic sur le bouton, voici le code derrière.
Je devais modifier le code response.redirect de quelqu'un d'autre pour l'ouvrir dans un nouveau navigateur.
la source
J'ai utilisé cette approche, cela ne vous oblige pas à faire quoi que ce soit sur le popup (auquel je n'avais pas accès car je redirigeais vers un fichier PDF). Il utilise également des classes.
Pour l'utiliser, ajoutez la classe "nouvelle-fenêtre" à n'importe quel élément. Vous n'avez rien à ajouter à la balise body. Cette fonction configure la nouvelle fenêtre et la fixe dans la même fonction.
la source
Je l'ai fait en mettant target = "_ blank" dans le bouton de lien
puis dans le codebehind pageload, définissez simplement l'attribut href:
la source
HTML
Javascript:
ET code derrière:
la source