PDA

View Full Version : [Asp.net] porting asp in asp.net


brianss
29-01-2008, 09:29
Buongiorno a tutti!
premessa: non sono esperto nell'utilizzare ASP.Net

Mi trovo a dover affrontare un problema dovuto all'inesperienza:
Devo fare un porting di una pagina ASP in Asp.Net con code-behind in c#

il mio problema è questo:
nella pagina asp devo fare eseguire una lunga porzione di codice javascript (compreso nei tag <script>) se e solo se viene verificata una condizione due righe più su. quest'ultima condizione è in codice asp
<%= if(condizione) %>

come vi dicevo se questa è vera viene eseguita una lunga serie di codice javascript.

come affrontare la cosa in asp.net? cosa ci va nella pagina aspx e nella pagina aspx.cs?

simoneart
29-01-2008, 14:09
Puoi utilizzare una sintassi simile all'asp. Nella pagina aspx scrivi tipo

<% if (condizione) { %>
<script bla bla

<% } %>


Dovrebbe funzionare.
Non è sicuramente la soluzione più elegante, ma dovrebbe assolvere il compito.

brianss
29-01-2008, 14:21
non va bene perche come detto sopra devo usare il code-behind.
ovvero la if la deve fare il codice c# associato mentre il resto sarebbero funzioni javascript che vanno scritte nella pagina aspx

simoneart
29-01-2008, 18:45
Beh, allora crea una variabile public di tipo string nel codebehind e la popoli sull'evento page_load.

Se la condizione è vera, ci metti dentro il codice che vuoi, se è falsa la lasci vuota.

brianss
30-01-2008, 08:53
ok faccio un tentativo così allora...grazie

0rph3n
30-01-2008, 10:25
scordati la filosofia asp per sviluppare in .net altrimenti rimarrai sempre ancorato a quella schifezza!

Il controllo della condizione puoi farlo nel metodo page_load come detto da simoneeart, solo che poi al posto di valorizzare una variabile e poi farne l'output con <%= %> chiami il metodo RegisterClientScriptBlock della classe ClientScriptManager.
Guarda qua: Metodo ClientScriptManager.RegisterClientScriptBlock (Type, String, String) (http://msdn2.microsoft.com/it-it/library/btf44dc9(vs.80).aspx)

'iao