Eseguire una funzione JavaScript da C#

lunedì 16 settembre 2013 - 18.01

LuceKeTr3ma Profilo | Newbie

Ciao a tutti.

sono nuovo e, premetto, nemmeno tanto pratico di C#.

come da titolo vi espongo il quesito seguente che non sono riuscito a risolvere googlando:

Vorrei scaricare un file da una pagina Web che genera tramite un Javascript. (un Excel con i voti del fantacalcio ;) )

il sito è Fantagazzetta.com:
http://fantagazzetta.com/download.aspx?key=voti&g=3
dove l'href di "Redazione di Milano" fa scaricare un Excel.
Il click richiama il metodo Javascript __doPostBack(target, argument) che per target prende 'ctl00$ContentPlaceHolderElle$Download1$LinkButtonExcelM' e argument ''.

Da Visual studio pensavo di risolvere velocemente con qualcosa di simile:

[...]
protected void Button1_Click(object sender, EventArgs e)
{
string url = "http://fantagazzetta.com/download.aspx?key=voti&g=3";
string target = "'ctl00$ContentPlaceHolderElle$Download1$LinkButtonExcelM'";
string argument = "''";
WebBrowser1.Navigate(url);
ChiamaScript("__doPostBack", target, argument);
}

private void ChiamaScript(string name, params object[] args)
{
WebBrowser1.Document.InvokeScript(name, args);
}
[...]

oppure
[...]
WebBrowser1.Navigate(url);
WebBrowser1.Document.GetElementById("ContentPlaceHolderElle_Download1_LinkButtonExcelM").Focus();
WebBrowser1.Document.GetElementById("ContentPlaceHolderElle_Download1_LinkButtonExcelM").InvokeMember("href");
[...]

oppure ancora con

[...]
HtmlElementCollection links = WebBrowser1.Document.All;
foreach (HtmlElement link in links)
{
if (link.InnerText.Equals("MContentPlaceHolderElle_Download1_LinkButtonExcelM"))
link.InvokeMember("Click");
}
[...]

ma va sempre in NullReferenceException.


Qualcuno può darmi il codice per eseguirlo correttamente?

Grazie
Marco

alx_81 Profilo | Guru

>Ciao a tutti.
ciao e benvenuto su dotnethell

e perchè invece non inverti il punto di vista? Quello che vuoi fare è un po' insolito..
Invece perchè non pensi di lanciare via js una funzione a server (con ajax) e creare il file a server per darlo poi da scaricare sul client?
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://blogs.dotnethell.it/suxstellino
http://suxstellino.wordpress.com
http://mvp.microsoft.com/profiles/Alessandro.Alpi

vankraster Profilo | Newbie

Ecco un esempio:
System.Web.UI.ScriptManager.RegisterClientScriptBlock(Page, this.GetType(), Page.ClientID, "alert('" + testo.Replace("'", "\'") + "');", true);

alla pagina devi aggiungere uno scriptmanager:
<asp:ScriptManager ID="scrptManag" runat="server" EnablePartialRendering="true" EnableScriptGlobalization="true" EnablePageMethods="true" />

Cix Profilo | Newbie

Un salutone a tutto il blog , mi chiamo Francesco

Ciao anchio sono interessato alla cosa, però c'è da fare 2 precisazioni 1, c'è bisogno di autenticarsi qiel sito per aver accesso al file .... 2) utile sarebbe poter fare un programma che cambiando solo il paramentro del numero scarichi automaticamente il file...

cmq ti andrebbe di aiutarmi almenoa risolvere parzialmente sai dovrei scaricarne 100 di questi file :(

alx_81 Profilo | Guru

>Un salutone a tutto il blog , mi chiamo Francesco
Ciao e benvenuto su dotnethell.it!

>Ciao anchio sono interessato alla cosa, però c'è da fare 2 precisazioni
>1, c'è bisogno di autenticarsi qiel sito per aver accesso al
>file .... 2) utile sarebbe poter fare un programma che cambiando
>solo il paramentro del numero scarichi automaticamente il file...
>cmq ti andrebbe di aiutarmi almenoa risolvere parzialmente sai
>dovrei scaricarne 100 di questi file :(
Non ho capito molto di quello che hai scritto. Però ti chiedo di creare un nuovo thread con tutti i dettagli utili a poterti aiutare.
Ciao e grazie

Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://blogs.dotnethell.it/suxstellino
http://suxstellino.wordpress.com
http://mvp.microsoft.com/profiles/Alessandro.Alpi

Cix Profilo | Newbie

Ciao ringraziandoti per la cortese


Vorrei scaricare un file da una pagina Web che genera tramite un Javascript. (un Excel con i voti del fantacalcio ;) )

il sito è Fantagazzetta.com:
http://fantagazzetta.com/download.aspx?key=voti&g=3
dove l'href di "Redazione di Milano" fa scaricare un Excel.
Il click richiama il metodo Javascript __doPostBack(target, argument) che per target prende 'ctl00$ContentPlaceHolderElle$Download1$LinkButtonExcelM' e argument ''.

questo è il problema principale .. però c'è da dire che il file .xls da scaricare appartienead un area protetta dove per entrare bisgona autenticarsi,, e quindi penso pure per scaricarsi, quindi sto programma dovrebbea utenticarsi...non so




poi problema minore il programma solo se si puo, ma gi aun aversione senza quest0ulteriore cose non è un problema, il programma dovrebbe dove c'è scritto ,

voti&g=3 di volta in volta fare 4,5,5,6

Certo di un tuo aiuto ti ringrazio sin d'ora

alx_81 Profilo | Guru

>Ciao ringraziandoti per la cortese
Ciao, forse mi sono spiegato male.
Apri proprio un nuovo thread, non continuare a scrivere qui.
Vai nella stanza asp.net e crea una nuova discussione.
In questo modo molte più persone ricevono la notifica e possono aiutarti.
grazie ancora,
ciao
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://blogs.dotnethell.it/suxstellino
http://suxstellino.wordpress.com
http://mvp.microsoft.com/profiles/Alessandro.Alpi
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-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5