Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
ASP.NET 1.0/1.1
Imglobare codice javascrip-client lato server
venerdì 31 marzo 2006 - 18.00
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
6969
Profilo
| Junior Member
88
messaggi | Data Invio:
ven 31 mar 2006 - 18:00
Cari amici,
con asp.net mi sembra di capire che non è facile conciliare il codice server da quello client.
Vorrei lanciare una funzione javascrip che funziona lato client attraverso una sub lato server:
Ho provato a scrivere qualcosa del tipo:
sub lato_server(..)
response.write("<script language=""javascript"">window.open 'follow.aspx', '',');</script>"))
end sub
mi fa un casino incredibile su tutta la formattazione della pagina e non so se è giusto usare il response.write..
Potete iutarmi??
grazie
alessandro
micto27
Profilo
| Senior Member
385
messaggi | Data Invio:
sab 1 apr 2006 - 10:10
>Cari amici,
>con asp.net mi sembra di capire che non è facile conciliare il
>codice server da quello client.
>Vorrei lanciare una funzione javascrip che funziona lato client
>attraverso una sub lato server:
>Ho provato a scrivere qualcosa del tipo:
>
>sub lato_server(..)
>response.write("<script language=""javascript"">window.open
>'follow.aspx', '',');</script>"))
>end sub
>
>mi fa un casino incredibile su tutta la formattazione della pagina
>e non so se è giusto usare il response.write..
>
>Potete iutarmi??
>grazie
A tale scopo ti possono essere comodo qualcosa del genere:
If (Not Me.Page.IsClientScriptBlockRegistered("pippo")) Then
Me.Page.RegisterClientScriptBlock("pippo", scriptString)
End If
è come se la pagina disponesse di una collezione di script lato client dove
ogni script è associato ad una chiave.
Nell'esempio:
scriptString è la stringa contenente lo script client
"pippo" è la chiave associata a tale script
se lo script non è già stato registrato nella collezione (IsClientScriptBlockRegistered)
allora il metodo RegisterClientScriptBlock si occupa di registrarlo e di fartelo trovare
sul rendering della pagina.
Ciao, Michele
6969
Profilo
| Junior Member
88
messaggi | Data Invio:
sab 1 apr 2006 - 18:44
Innanzitutto grazie,
ora provo come consigliato, solo una cosa: con stringaScript intendi direttamente il codice client comprensivo dei tag di definizione del linguaggio, come::
("<script language=""javascript"">window.open 'follow.aspx', '',');</script>"))
oppure intendi il nome della funzione o sub da richiamare che è già scritta lato client??
grazie ancora
alessandro
micto27
Profilo
| Senior Member
385
messaggi | Data Invio:
dom 2 apr 2006 - 19:08
>Innanzitutto grazie,
>
>ora provo come consigliato, solo una cosa: con stringaScript
>intendi direttamente il codice client comprensivo dei tag di
>definizione del linguaggio, come::
>
>("<script language=""javascript"">window.open 'follow.aspx',
>'',');</script>"))
>
>oppure intendi il nome della funzione o sub da richiamare che
>è già scritta lato client??
>
>grazie ancora
>alessandro
>
la prima delle due: "<script language=""javascript"">window.open 'follow.aspx',
>'',');</script>"
ciao, Michele
6969
Profilo
| Junior Member
88
messaggi | Data Invio:
lun 3 apr 2006 - 17:17
Scusami se ti disturbo, ma ancora non risolvo:
ti scivo il codice forse puoi aiutarmi ancora:
In poche parole quando seleziono una riga del dataGrid vorrei che si aprisse con codice Jscript una finestra PoPUp con info relative alla riga selezionata. Ora il prob. è che scrivendo il codice in questo modo:
sub Seleziona_RigaDG (s As Object, e As DataGridCommandEventArgs)
If (Not Me.Page.IsClientScriptBlockRegistered("pippo")) Then
Me.Page.RegisterClientScriptBlock("pippo", "<script anguage=""javascript"">window.open 'follow.aspx' </script>")
End If
end sub
continua a farmi un casino sulla formattazione e dopo in quale punto dovrei eventualmente registrare il codice client per legarlo alla sua chiave ("pippo") ??
grazie ancora
alessandro
micto27
Profilo
| Senior Member
385
messaggi | Data Invio:
lun 3 apr 2006 - 19:01
>Scusami se ti disturbo, ma ancora non risolvo:
>
>ti scivo il codice forse puoi aiutarmi ancora:
>
>In poche parole quando seleziono una riga del dataGrid vorrei
>che si aprisse con codice Jscript una finestra PoPUp con info
>relative alla riga selezionata. Ora il prob. è che scrivendo
>il codice in questo modo:
>
>sub Seleziona_RigaDG (s As Object, e As DataGridCommandEventArgs)
>
>If (Not Me.Page.IsClientScriptBlockRegistered("pippo")) Then
>Me.Page.RegisterClientScriptBlock("pippo", "<script anguage=""javascript"">window.open
>'follow.aspx' </script>")
>End If
>
>end sub
Un'ipotesi potrebbe essere quella di prevedere una funzione javascript denominata ad esempio
ApriDettaglio(idRiga) con un parametro coincidente con l'identificativo della riga sulla quale
effettuare lo zoom.
Tale funzione non serve venga registrata lato server e potresti prevederla direttamente nel codice della pagina aspx
o meglio in un file js.
A questo punto puoi prevedere su ogni riga del datagrid un Hyperlink e in fase di DataBind andresti a valorizzarne
la proprietà NavigateUrl con la frase:
javascript:ApriDettaglio(xxxx); con xxxx uguale all'identificativo della riga della quale si sta facendo il Bind.
es.
function ApriDettaglio(rigaId)
{
var w = 800;
var h = 600;
var url = 'follow.aspx?riga=' + rigaId
win = window.open(url, 'follow', 'scrollbars=yes, resizable=yes, width='+ w +', height='+ h +', status=no, location=0,toolbar=0,menubar=1');
}
ciao, Michele
6969
Profilo
| Junior Member
88
messaggi | Data Invio:
mer 5 apr 2006 - 13:41
Scusa se ti rispondo solo ora, comunque grazie ancora, ho provato come mi hai suggerito e come temevo ho problemi a passere (oppure, forse riesco a passarlo ma non riesco ad intercettarlo) il valore della riga selezionata alla funzione client. Comunque la finestra "zoom" si apre e non mi da nessun errore
<SCRIPT language="JavaScript"><!--
function apri_riga(valore_riga) {
window.open('CLINICAL_ACCOUNT_INFO.aspx?riga=' + valore_riga, 'follow','width=250,height=200,scrollbars=no,toolbar=no')
}
//--></SCRIPT>
...
...
<asp:datagrid ..........>
<Columns>
<asp:TemplateColumn>
<HeaderTemplate> prova</HeaderTemplate>
<ItemTemplate><A style="FONT-SIZE: 10pt; Font-Names: Arial" href="javascript:apri_riga('DataGrid1.DataKeys(e.Item.ItemIndex).ToString', '');">prova</A>
</ItemTemplate> </asp:TemplateColumn>
...
..
Cosa ne pensi, forse siamo vicini alla soluzione
grazie
alessandro
micto27
Profilo
| Senior Member
385
messaggi | Data Invio:
mer 5 apr 2006 - 13:55
Ciao,
nell' ItemTemplate del datagrid prova ad utilizzare un controllo di tipo Hyperlink
più o meno così configurato:
<ItemTemplate>
<asp:Hyperlink id="hypZoom" CssClass="classe di stile" runat="server" NavigateUrl="javascript:apri_riga(" + <%# DataBinder.Eval(Container, "ItemIndex") %>" + ");"
</ItemTemplate>
Michele
6969
Profilo
| Junior Member
88
messaggi | Data Invio:
mer 5 apr 2006 - 15:31
Ok
grazie
ora provo
a dopo ale
6969
Profilo
| Junior Member
88
messaggi | Data Invio:
gio 6 apr 2006 - 14:51
Ti ringrazio di tutti i consigli, alla fine ho (vista la mia poca dimistichezza con jvscript) ho preferito utilizzare HyperLinkColumn in questo modo
<asp:HyperLinkColumn Text="dettagli" Target=_blank DataNavigateUrlField="ACCOUNT_CENTER" DataNavigateUrlFormatString="CLINICAL_ACCOUNT_INFO.aspx?retry={0}" HeaderText="Dettagli"></asp:HyperLinkColumn>
ciao
ale
Torna su
Stanze Forum
Elenco Threads
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 !