Usuário com melhor resposta
Abrir Nova Janela do Browser

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
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
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
-
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
-
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>");
-
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>");