Quero fazer um, Response.Redirect("MyPage.aspx")
mas abri-lo em uma nova janela do navegador. Já fiz isso antes sem usar o método de script de registro JavaScript. Eu simplesmente não consigo lembrar como?
c#
asp.net
response.redirect
hims056
fonte
fonte
OnClientClick="aspnetForm.target ='_blank';"
usarOnClientClick="document.getElementById('Form').target ='_blank';"
Você pode usar isso como método de extensão
Com isso, você obtém uma boa substituição no objeto Response real
fonte
Como Response.Redirect é iniciado no servidor, você não pode fazer isso usando isso.
Se você puder gravar diretamente no fluxo de resposta, poderá tentar algo como:
fonte
Controle o seu url por meio do manipulador de eventos de clique:
Então:
fonte
O truque do fixform é legal, mas:
Você pode não ter acesso ao código que carrega na nova janela.
Mesmo que o faça, você está dependendo do fato de que ele sempre carrega, sem erros.
E você depende do fato de que o usuário não clicará em outro botão antes que a outra página tenha a chance de carregar e executar o fixform.
Eu sugeriria fazer isso em vez disso:
E configure o fixform na mesma página , assim:
fonte
Você também pode usar no code-behind desta forma
fonte
window.open('page.aspx','_blank');
lo, ainda o abre em uma nova janela com a barra de navegação desabilitada e os botões de navegação ausentes em vez de uma nova guia.Isso não é possível com Response.Redirect, pois acontece no lado do servidor e não pode direcionar seu navegador para realizar essa ação. O que restaria na janela inicial? Uma página em branco?
fonte
o método pop-up fornecerá uma pergunta segura ao visitante.
aqui está minha solução simples: e trabalhando em todos os lugares.
fonte
Fonte: http://dotnetchris.wordpress.com/2008/11/04/c-aspnet-responseredirect-open-into-new-window/
fonte
Se você puder reestruturar seu código para que não precise postback, poderá usar este código no evento PreRender do botão:
fonte
Você também pode usar o código a seguir para abrir uma nova página em uma nova guia.
E apenas chame Response.Redirect ("yourPage.aspx"); por trás do evento de botão.
fonte
Eu sempre uso este código ... Use este código
fonte
Aqui está uma versão do jQuery baseada na resposta de @takrl e @tom acima. Nota: nenhum formid codificado (denominado aspnetForm acima) e também não usa referências diretas a form.target que o Firefox pode achar problemáticas:
Então, em seu arquivo js referenciado na MESMA página:
fonte
Eu usei Hyperlink em vez de LinkButton e funcionou muito bem, ele tem a propriedade Target, então resolveu meu problema. Havia a solução com Response.Write, mas isso estava bagunçando meu layout, e aquele com ScriptManager, a cada atualização ou volta estava reabrindo a janela. Então foi assim que resolvi:
fonte
Você pode usar o Page.RegisterStartupScript para garantir que o javascript seja acionado no carregamento da página.
fonte
você pode abrir uma nova janela de código asp.net atrás usando ajax como fiz aqui http://alexandershapovalov.com/open-new-window-from-code-behind-in-aspnet-68/
fonte
Nenhum dos exemplos anteriores funcionou para mim, então decidi postar minha solução. Nos eventos de clique de botão, aqui está o código por trás.
Eu estava tendo que modificar o código response.redirect de outra pessoa para abrir em um novo navegador.
fonte
Eu usei essa abordagem, ela não exige que você faça nada no pop-up (ao qual eu não tive acesso porque estava redirecionando para um arquivo PDF). Ele também usa classes.
Para usar, adicione a classe "nova janela" a qualquer elemento. Você não precisa adicionar nada à tag do corpo. Esta função configura a nova janela e a corrige na mesma função.
fonte
Eu fiz isso colocando target = "_ blank" no linkbutton
em seguida, no pageload codebehind apenas defina o atributo href:
fonte
HTML
Javascript:
E codebehind:
fonte