Esportare frame in excel / pdf / csv / word

martedì 18 aprile 2006 - 11.18

lucagtii Profilo | Junior Member

Ciao a tutti, ho una piccola necessità, sto cercando di scrivere una procedura che mi permetta di esportare una pagina aspx in diversi formati.
Il problema che ho riscontrato è dovuto dal fatto che la mia default è composta da 5 frame, i bottoni di esportazione sono su un frame mentre la pagina che mi interessa esportare si trova su un'altro frame.

Qualche idea?

Ciao e grazie.

alx_81 Profilo | Guru

al click dei pulsanti lanci una funzione javascript che forza la submit sul frame che ti interessa postare..

utilizza la top (che il frame padre di tutti i tuoi 5 frame)

Alx81 =)

lucagtii Profilo | Junior Member

>al click dei pulsanti lanci una funzione javascript che forza
>la submit sul frame che ti interessa postare..
>
>utilizza la top (che il frame padre di tutti i tuoi 5 frame)
>
>Alx81 =)

Ciao alex, ti ringrazio per il suggerimento ma purtoppo così facendo non riesco a passare l'intero html ad una routine per poi renderlo esportabile.

Il concetto è passare il contenuto html di una pagina in una routine o in un'altra pagina per poi gestire il tipo di esportazione.

Grazie, ciao

alx_81 Profilo | Guru

basta mettere tutto l'html che devi passare alla "stampa" dentro ad un div.
poi, nella funzione javascript, ricavi l'html tramite la proprietà innerHTML del div e lo passi in un campo nascosto.
Da qui, basta fare la submit e postare alla nuova pagina (ad es. stampa.aspx) l'html da renderizzare..
è chiaro?
Alx81 =)

lucagtii Profilo | Junior Member

>basta mettere tutto l'html che devi passare alla "stampa" dentro
>ad un div.
l'ho fatto!!
>poi, nella funzione javascript, ricavi l'html tramite la proprietà
>innerHTML del div e lo passi in un campo nascosto.
Scusa ma questo pezzo non riesco ad applicarlo.. ti spiego, ho fatto una funzione jscr di questo tipo sul frame top:
function fnPostBackBetweenFrames(postBackFormString,frameName , actionUrl)
{
var postBackForm = eval(postBackFormString);
var html = innerHTML()
postBackForm.target = frameName;
postBackForm.action = actionUrl;
postBackForm.__VIEWSTATE.name = '';
postBackForm.method = "post";
postBackForm.submit();
return false;
}
Ora quando clikko sull'image button il codice server che viene eseguito è il seguente:
bottomFunction = "javascript:return fnPostBackBetweenFrames('document.Form1','fpage','export.aspx');"
excel.Attributes.Add("onclick", bottomFunction)

Quello su cui non mi trovo è:
come faccio a recuperare l'html presente nel div del frame "contenuti" e a fare la submit?
>Da qui, basta fare la submit e postare alla nuova pagina (ad
>es. stampa.aspx) l'html da renderizzare..
>è chiaro?
>Alx81 =)

Grazie.

alx_81 Profilo | Guru

{
var postBackForm = eval(postBackFormString);
//--------------------------
var html = document.nomeform.nomediv.innerHTML;
//--------------------------
postBackForm.target = frameName;
postBackForm.action = actionUrl;
postBackForm.__VIEWSTATE.name = '';
//--------------------------
postBackForm.campohidden.value = html
//--------------------------
postBackForm.method = "post";
postBackForm.submit();
return false;
}

nella pagina da cui fai la submit devi creare un campo hidden vuoto (chiamato nello script "campohidden").
Con lo script, il contenuto html viene messo nel campo hidden e viene passato in post.
dovrebbe bastare..
Alx81 =)
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5