none
Abrir Nova Janela do Browser RRS feed

  • Pergunta

  • ola Galera,

    o problema é o seguinte, tenho uma GridView que deve abrir uma novo janela do browser ao clicar no link antes de abrir essa janela ele precisa executar algumas coisas e nao consigo fazer isso

    gridView:

    <asp:GridView ID="gv_mensagens" runat="server" CellPadding="4" ForeColor="#333333" 
                                    GridLines="None" Width="673px" AutoGenerateColumns="False" 
                                    onrowcommand="gv_mensagens_RowCommand" DataKeyNames="ID">
                                    <AlternatingRowStyle BackColor="White" />
                                    <Columns>
                                        <asp:BoundField DataField="id" HeaderText="ID" />
                                        <asp:BoundField DataField="emplid" />
                                        <asp:BoundField DataField="nome" HeaderText="Remetente" />
                                        <asp:BoundField DataField="titulomensage" HeaderText="Titulo" />
                                        <asp:BoundField DataField="registroenvio" HeaderText="Data" />
                                        <asp:ButtonField DataTextField="abrir" HeaderText="Abrir" Text="Button">
                                        <ControlStyle ForeColor="Red" />
                                        </asp:ButtonField>
                                    </Columns>
                                    <FooterStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />
                                    <HeaderStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />
                                    <PagerStyle BackColor="White" ForeColor="#333333" HorizontalAlign="Center" />
                                    <RowStyle BackColor="White" ForeColor="#333333" />
                                    <SelectedRowStyle BackColor="#FFCC66" Font-Bold="True" ForeColor="Navy" />
                                    <SortedAscendingCellStyle BackColor="#FDF5AC" />
                                    <SortedAscendingHeaderStyle BackColor="#4D0000" />
                                    <SortedDescendingCellStyle BackColor="#FCF6C0" />
                                    <SortedDescendingHeaderStyle BackColor="#820000" />
                                </asp:GridView>


    rowCommand:

          string url;
                dadosProcessing = new ProcessingDados();
                textProcessing = new ProcessingText();
    
                int index = Convert.ToInt32((string)e.CommandArgument);
                string chave = gv_mensagens.DataKeys[index]["ID"].ToString();
                GridViewRow row = gv_mensagens.Rows[index];
    
    
                url = @"mensagem.aspx?dest=" + textProcessing.criptografa(dadosProcessing.getEmplidUser(Convert.ToString(Session["username"]))) + "&rem=" + textProcessing.criptografa(Server.HtmlDecode(row.Cells[1].Text)) + "&titulo=" + textProcessing.criptografa(Server.HtmlDecode(row.Cells[3].Text)) + "&data=" + textProcessing.criptografa(Server.HtmlDecode(row.Cells[4].Text));
                //string script = "window.open('" + url + "')";
                //ScriptManager.RegisterStartupScript(Page, Page.GetType(), "Mensagem", script, true);
                ////Response.Redirect(url);
                Response.Redirect(url, true);

    no lugar do

    Response.Redirect(url, true);

    eu tentei coloca as coisas comentadas em cima mais nao da certo

    obrigado

    terça-feira, 5 de março de 2013 19:05

Respostas

  • Abaixo segue um exemplo que testei e funcionou.

    protected void Page_Load(object sender, EventArgs e)
    {
        Page.ClientScript.RegisterStartupScript(Page.GetType(), "key", "<script type=text/javascript>window.open('http://www.google.com')</script>");
    }
    Outra coisa, não faça o redirect, se fizer, não vai funcionar.
    • Marcado como Resposta Andre Germiniani quarta-feira, 6 de março de 2013 13:24
    terça-feira, 5 de março de 2013 23:28

Todas as Respostas

  • ola Galera,

    o problema é o seguinte, tenho uma GridView que deve abrir uma novo janela do browser ao clicar no link antes de abrir essa janela ele precisa executar algumas coisas e nao consigo fazer isso

    gridView:

    <asp:GridView ID="gv_mensagens" runat="server" CellPadding="4" ForeColor="#333333" 
                                    GridLines="None" Width="673px" AutoGenerateColumns="False" 
                                    onrowcommand="gv_mensagens_RowCommand" DataKeyNames="ID">
                                    <AlternatingRowStyle BackColor="White" />
                                    <Columns>
                                        <asp:BoundField DataField="id" HeaderText="ID" />
                                        <asp:BoundField DataField="emplid" />
                                        <asp:BoundField DataField="nome" HeaderText="Remetente" />
                                        <asp:BoundField DataField="titulomensage" HeaderText="Titulo" />
                                        <asp:BoundField DataField="registroenvio" HeaderText="Data" />
                                        <asp:ButtonField DataTextField="abrir" HeaderText="Abrir" Text="Button">
                                        <ControlStyle ForeColor="Red" />
                                        </asp:ButtonField>
                                    </Columns>
                                    <FooterStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />
                                    <HeaderStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />
                                    <PagerStyle BackColor="White" ForeColor="#333333" HorizontalAlign="Center" />
                                    <RowStyle BackColor="White" ForeColor="#333333" />
                                    <SelectedRowStyle BackColor="#FFCC66" Font-Bold="True" ForeColor="Navy" />
                                    <SortedAscendingCellStyle BackColor="#FDF5AC" />
                                    <SortedAscendingHeaderStyle BackColor="#4D0000" />
                                    <SortedDescendingCellStyle BackColor="#FCF6C0" />
                                    <SortedDescendingHeaderStyle BackColor="#820000" />
                                </asp:GridView>


    rowCommand:

          string url;
                dadosProcessing = new ProcessingDados();
                textProcessing = new ProcessingText();
    
                int index = Convert.ToInt32((string)e.CommandArgument);
                string chave = gv_mensagens.DataKeys[index]["ID"].ToString();
                GridViewRow row = gv_mensagens.Rows[index];
    
    
                url = @"mensagem.aspx?dest=" + textProcessing.criptografa(dadosProcessing.getEmplidUser(Convert.ToString(Session["username"]))) + "&rem=" + textProcessing.criptografa(Server.HtmlDecode(row.Cells[1].Text)) + "&titulo=" + textProcessing.criptografa(Server.HtmlDecode(row.Cells[3].Text)) + "&data=" + textProcessing.criptografa(Server.HtmlDecode(row.Cells[4].Text));
                //string script = "window.open('" + url + "')";
                //ScriptManager.RegisterStartupScript(Page, Page.GetType(), "Mensagem", script, true);
                ////Response.Redirect(url);
                Response.Redirect(url, true);

    no lugar do

    Response.Redirect(url, true);

    eu tentei coloca as coisas comentadas em cima mais nao da certo

    obrigado

    AO invés de colocar o código no RowCommand, faz um teste ae...

    Cria um TemplateField, Edita ele e dentro dele joga um Botão...

    Mapeia o Click do botão e poe esse código do RowCommand pra ver o que acontece :)


    Leonardo Lourenço Silva

    terça-feira, 5 de março de 2013 23:21
  • Abaixo segue um exemplo que testei e funcionou.

    protected void Page_Load(object sender, EventArgs e)
    {
        Page.ClientScript.RegisterStartupScript(Page.GetType(), "key", "<script type=text/javascript>window.open('http://www.google.com')</script>");
    }
    Outra coisa, não faça o redirect, se fizer, não vai funcionar.
    • Marcado como Resposta Andre Germiniani quarta-feira, 6 de março de 2013 13:24
    terça-feira, 5 de março de 2013 23:28
  • Cesar Cassiano

    sua solução realmente funciona obrigado.

    Mas caso eu queira abrir uma nova instancia do browser, sem ser uma nova guia, como eu faço?

    tentei desta maneira mais nao deu certo

    Page.ClientScript.RegisterStartupScript(Page.GetType(), "key", "<script type=text/javascript>window.open('" + url + "', '_blank')</script>");

    quarta-feira, 6 de março de 2013 12:16
  • Normalmente isto é controlado pelas preferências do próprio navegador, não tem muito o que fazer, mas abaixo tem outro exemplo que pode ajudar.

    Page.ClientScript.RegisterClientScriptBlock(Page.GetType(), "box1", "<script type='text/javascript'>window.open('http://www.google.com', '_blank', 'toolbar=0');</script>");

    quinta-feira, 7 de março de 2013 00:53