Foros del Web » Programación para mayores de 30 ;) » .NET »

Abrir un archivo en una ventana nueva

Estas en el tema de Abrir un archivo en una ventana nueva en el foro de .NET en Foros del Web. Hola... Necesito encontrar la forma de abrir desde .net una ventana nueva con el archivo que quiero, pero no sé como ya que me topo ...
  #1 (permalink)  
Antiguo 18/09/2003, 12:31
 
Fecha de Ingreso: marzo-2003
Ubicación: -
Mensajes: 8
Antigüedad: 21 años, 2 meses
Puntos: 0
Mensaje Abrir un archivo en una ventana nueva

Hola...

Necesito encontrar la forma de abrir desde .net una ventana nueva con el archivo que quiero, pero no sé como ya que me topo con una situación interesante, resulta que después de exportar un documento de crystal reports .net a pdf, quiero abrirlo para que el usuario decida donde quiere guardarlo.

El problema con que me encuentro es que abro el archivo mediante Response.Redirect(Request.ApplicationPath + "\Exported\" + fileName), pero posterior a mostrarlo quiero eliminarlo del server, esto para no generar basura innecesaria. Pero al abrirlo me lo abre en la misma ventana en la que estoy ejecutando el código.

Y tras de eso sucede que no se ejecutan las líneas de código posteriores al response.

Por esta razón es que necesito hacer de alguna forma para que el archivo se abra en otra ventana, pero no sé cómo, tiene alguien alguna sugerencia?.




crReportDocument.Export()

If File.Exists(Request.PhysicalApplicationPath + "Exported\" + fileName) Then

Response.Redirect(Request.ApplicationPath + "\Exported\" + fileName)

File.Delete(Request.PhysicalApplicationPath + "Exported\" + fileName)

End If
  #2 (permalink)  
Antiguo 22/09/2003, 11:23
JHS
 
Fecha de Ingreso: septiembre-2003
Mensajes: 6
Antigüedad: 20 años, 7 meses
Puntos: 0
Mira yo lo resolví asi:

1. Para abrir una nueva pagina no lo encontré desde .Net (no he buscado en el 2003), por lo tanto lo hice desde el cliente...
2. Como vas a abrir una nueva ventana necesitas que se comuniquen las dos, yo lo hice con variables Session y hago el proceso en esta ventana nueva.
3. Agrego el codigo para que no te quede basura en el servidor...

1. Para abrir una ventana nueva (hago click en uno de mis botones y en este lleno "txtenvia" con el valor "envia", como es un control de servidor el hace el PostBack, y por lo tanto hace que la página se lea nuevamente (onload) y hace que se jecute la función...

***************EN EL HTML **********************

<script language="javascript">
/*Función que siempre se esta leyendo desde el onload del body de html*/
function inicio()
{
if (salparametros.txtenvia.value == "envia")
{
salparametros.txtenvia.value = "";
AbrePDF();
}
}

/*Abre una ventana de acuerdo a lo que quiero*/
function AbrePDF()
{
var win = null;
h = 600;
w = 800;
LeftPosition = (screen.width) ? (screen.width-w)/2 : 0;
TopPosition = (screen.height) ? (screen.height-h)/2 : 0;
settings = 'height='+h+',width='+w+',top='+TopPosition+',left ='+LeftPosition+',scrollbars=yes'
win = window.open('salpdf.aspx','',settings)
//window.open(,'Saldos','dependent=yes, width=730,height=430');
}
</script>

</HEAD>
<body scroll="no" onload="inicio()>

2. Las variables las defino el el global.asa... y hago el proceso en esta pantalla nueva

***************EN .NET **********************
private void Page_Load(object sender, System.EventArgs e)
{
if (IsPostBack)
{
HaceCosulta();
}

}


3. basura en el servidor
********** EN .NET ********************

sale = Session["sArchi"].ToString();

Response.ClearContent();
Response.ClearHeaders();
Response.WriteFile(sale);
Response.ContentType = "Application/x-msexcel";
Response.AddHeader ("content-disposition","attachment filename="+sale);
Response.WriteFile(sale);
//Response.Redirect(ssalida);
Response.Flush();
Response.Close();

System.IO.File.Delete(sale);


Espero que esto le ayude....
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 18:07.