Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14

Discussione: Domanda da niubbo

  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    145

    Domanda da niubbo

    Ciao a tutti,
    questo forse per voi sarà l'ennesimo posto di chi migra da ASP a .NET e giustamente si mette le mani tra i capelli.
    Ho cercato, letto e riletto esempi...ma una delle cose che prima si facevano come niente in asp non riesco a trovarlo scritto da nessuna parte.
    Il mio dubbio è questo:
    io prima in asp (come tutti del resto) scrivevo il mio bel codice inline, mettevo funzioni e condizioni che, in base ai risultati, mi facevano scrivere un blocco di codice oppure un altro.
    Ora in .net scrivo l'html su una pagina e il codice su una pagina di tipo .vb (con visual studio)...ma se ad esempio voglio che nell'html si visualizzi un codice o una tabella in base magari a delle condizioni if...else o magari ad un certo punto del codice si debba richiamare una funzione...ma come cavolo faccio???
    Qualuno è così gentile da dirmi questa cosa, sicuramente semplice, ma che non riesco a capire??
    Grazie!!!!!

  2. #2
    guarda i modi di fare possono essere tanti.

    però diciamo che potresti anche fare cosi:

    c#
    protected bool myFLAG;

    dentro a qualche funzione valorizzi la variabile myFLAG

    e poi nella pagina .aspx metterai tra il codice html qualcosa di simile a

    <% if(myFLAG){ %>
    tabella
    <%}else{%}
    altra tabella
    <%}%>

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    145
    Ciao,
    ti ringrazio per la risposta.
    Premetto che uso VB al posto di C#, ma ho fatto una prova molto semplice:

    Ho una funzione che esegue un codice (ora per fare l'esempio il codice è praticamente nullo)
    ; la funzione è scritta nel file con estensione .vb

    Public Sub ProvaIf()

    Dim numero AS integer = 1

    End Sub

    nel mio file .aspx ho questo codice

    <% ProvaIf()

    If numero = 1 Then %>

    Il numero è uguale a 1

    <% Else %>

    Il numero non è 1

    <% End If %>

    Mandando in esecuzione la pagina porta questo errore:

    Compiler Error Message: BC30451: Name 'numero' is not declared.

    perchè giustamente numero è una variabile dichiarata nel file .vb e non qui....e allora come faccio?

  4. #4
    guarda sbagli a dichiarare le variabili.
    Public Sub ProvaIf()

    Dim numero AS integer = 1

    End Sub

    quel numero lo vedi solo all'interno di ProvaIf

    altro errore

    <% ProvaIf()

    If numero = 1 Then %>

    non funziona cosi magari potresti fare

    Protected Boolean ProvaIf()
    if numero = 1 then
    return true
    else
    return false
    end if

    End function

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    145
    Originariamente inviato da Daniele80
    guarda sbagli a dichiarare le variabili.
    Public Sub ProvaIf()

    Dim numero AS integer = 1

    End Sub

    quel numero lo vedi solo all'interno di ProvaIf

    altro errore

    <% ProvaIf()

    If numero = 1 Then %>

    non funziona cosi magari potresti fare

    Protected Boolean ProvaIf()
    if numero = 1 then
    return true
    else
    return false
    end if

    End function
    e ma io lo so che sbaglio!!!
    Allora...tu hai scritto l'esempio con boolean, ma se a me serve un if...else per un qualsiasi valore o magari stringa, come faccio?
    Ovviamente il valore o la stringa vengono "elaborati" nella funzione (esterna alla pagina) e poi nell'html scrivo il codice in base ai vari risultati della funzione.
    Oppure, sempre ad esempio, ho una funzione che genera dei valori, poi nell'html devo creare una tabella che contenga questi valori.
    La tabella in html è dinamica, il contenuto delle varie celle magari è un array che si trova nella funzione, ma anche qui se richiamo l'array mi dice ovviamente che non è stato dichiarato...quindi sono sempre da capo...
    Sto impazzendo...argh!!!!

  6. #6
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    asp.net è un poco diverso da asp e prima si capisce, meglio è.

    Per esempio, in una pagina non si mette mai del codice in linea, come in asp, ma il codice è scritto nel file separato.

    Siccome non si può spiegare in due parole, io propondo che tu scriva una semplice pagina ASP (ripeto semplice) per poi tentare di tradurla in asp.net
    Pietro

  7. #7
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    145
    ok allora facciamo una prova...
    questo è un codice asp che genera tre array, alla fine viene generata una tabella con tutti i valori degli array:

    <%@ Language="VBScript" %>
    <%
    Dim ArrChiaro()

    Dim ArrMedio()

    Dim ArrScuro()

    ReDim Preserve ArrChiaro(1)

    ReDim Preserve ArrMedio(1)

    ReDim Preserve ArrScuro(1)

    count = 1

    non_trovate = 0

    presente = 0

    While NOT non_trovate = 500

    Randomize

    chiaro = Int((15 - 7 + 1) * Rnd + 7)

    medio = Int((12 - 4 + 1) * Rnd + 4)

    scuro = Int((6 - 1 + 1) * Rnd + 1)

    totale = chiaro + medio + scuro

    If totale = 22 Then

    For x = 0 To count-1

    If ArrChiaro(x) = chiaro AND ArrMedio(x) = medio AND ArrScuro(x) = scuro Then

    presente = presente + 1

    Exit For

    End If

    Next

    If presente = 0 Then

    ReDim Preserve ArrChiaro(count)

    ArrChiaro(count-1) = chiaro

    ReDim Preserve ArrMedio(count)

    ArrMedio(count-1) = medio

    ReDim Preserve ArrScuro(count)

    ArrScuro(count-1) = scuro

    non_trovate = 0

    count = count + 1

    Else

    presente = 0
    non_trovate = non_trovate + 1

    End If

    End If

    Wend

    start = 1

    %>
    <% For righe = 1 To 9 %>
    <table border=1 cellspacing=5 align=center bordercolor="#000000">
    <tr>
    <% If righe = 1 Then

    start = 1

    Else

    start = start + 5

    End If

    For x = start To start + 4 %>
    <td colspan=3 align=center>Carta #<% = x %></td>
    <% Next %>
    </tr>
    <tr>
    <% For x = righe To righe + 4 %>
    <td>Chiaro</td>
    <td>Medio</td>
    <td>Scuro</td>
    <% Next %>
    </tr>
    <tr>
    <% For x = start To start + 4 %>
    <td align=center><% = ArrChiaro(x-1) %></td>
    <td align=center><% = ArrMedio(x-1) %></td>
    <td align=center><% = ArrScuro(x-1) %></td>
    <% Next %>
    </tr>
    </table>
    <% Next %>

    il codice che genera gli array in asp.net l'ho fatto senza problemi, in un file .vb con questo contenuto:

    Public Sub GeneraCarte(ByVal Sender As Object, ByVal E As EventArgs)

    Dim Vis_Bott As String = "no"

    Dim ArrChiaro() As Integer

    Dim ArrScuro() As Integer

    Dim ArrMedio() As Integer

    ReDim Preserve ArrChiaro(1)

    ReDim Preserve ArrMedio(1)

    ReDim Preserve ArrScuro(1)

    Dim count As Integer = 1

    Dim non_trovate As Integer = 0

    Dim presente As Integer = 0

    Dim chiaro As Integer
    Dim medio As Integer
    Dim scuro As Integer

    Dim totale As Integer

    Dim x As Integer

    While Not non_trovate = 1000

    Randomize()

    chiaro = Int((15 - 7 + 1) * Rnd() + 7)

    medio = Int((12 - 4 + 1) * Rnd() + 4)

    scuro = Int((6 - 1 + 1) * Rnd() + 1)

    totale = chiaro + medio + scuro

    If totale = 22 Then

    For x = 0 To count - 1

    If ArrChiaro(x) = chiaro And ArrMedio(x) = medio And ArrScuro(x) = scuro Then

    presente = presente + 1

    Exit For

    End If

    Next

    If presente = 0 Then

    ReDim Preserve ArrChiaro(count)

    ArrChiaro(count - 1) = chiaro

    ReDim Preserve ArrMedio(count)

    ArrMedio(count - 1) = medio

    ReDim Preserve ArrScuro(count)

    ArrScuro(count - 1) = scuro

    non_trovate = 0

    count = count + 1

    Else

    presente = 0
    non_trovate = non_trovate + 1

    End If

    End If

    End While


    ....ma per visualizzare la tabella??
    non sapendo fare in altri modi ho risolto molto rozzamente, sempre all'interno del file .vb

    Dim start = 1

    Dim righe As Byte

    For righe = 1 To 9

    Response.Write("<table border=1 cellspacing=5 align=center bordercolor='#000000'><tr>")

    If righe = 1 Then

    start = 1

    Else

    start = start + 5

    End If

    For x = start To start + 4

    Response.Write("<td colspan=3 align=center>Carta #" & x & "</td>")

    Next

    Response.Write("</tr><tr>")

    For x = righe To righe + 4

    Response.Write("<td>Chiaro</td>")
    Response.Write("<td>Medio</td>")
    Response.Write("<td>Scuro</td>")

    Next

    Response.Write("</tr><tr>")

    For x = start To start + 4

    Response.Write("<td align=center>" & ArrChiaro(x - 1) & "</td>")
    Response.Write("<td align=center>" & ArrMedio(x - 1) & "</td>")
    Response.Write("<td align=center>" & ArrScuro(x - 1) & "</td>")

    Next

    Response.Write("</tr></table>")

    Next

    End Sub

    ma perchè mi serviva al volo per fare una cosa....ma ovviamente non posso fare così per fare un sito web, per cui questa seconda parte a me serve nel file .aspx e non .vb!
    E quindi la domanda (del post di prima): come richiamo (ad esempio) un array creato sul file .vb??

  8. #8
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    145
    ma dai possibile che nessuno sappia dirmi qualcosa??
    ok pongo la questione in una maniera più semplice:
    questo codice in classic asp:

    <tr>
    <td height="51" valign="top">[img]imm/richieste.jpg[/img]</td>
    </tr>
    <tr>
    <td height="51" valign="top">[img]imm/ricerca.jpg[/img]</td>
    </tr>
    <% If visualizza_cassa = true Then %>
    <tr>
    <td height="51" valign="top">[img]imm/giorn_cassa_az.jpg[/img]</td>
    </tr>
    <% End If

    If admin = true Then %>

    <tr>
    <td height="51" valign="top">[img]imm/gest_utenti.jpg[/img]</td>
    </tr>
    <tr>
    <td height="51" valign="top">[img]imm/gest_prob.jpg[/img]</td>
    </tr>
    <tr>
    <td height="51" valign="top">[img]imm/gest_app.jpg[/img]</td>
    </tr>
    <tr>
    <td height="51" valign="top">[img]imm/gestione_backup.jpg[/img]</td>
    </tr>
    <% End If %>


    in asp.net ho il mio file .vb che contiene la lettura al database in base alla quale io so se le variabili visualizza_cassa e admin sono true o false (ma potrebbero avere qualsiasi valore, anche "si " e "no").
    Come trasformo queste poche righe di codice sopra in asp.net???

  9. #9
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    allora, prova a mettere, dove vuoi la tabella, un controllo litteral

    <asp:Literal ID="Literal1" runat="server"></asp:Literal>

    nel codice, dopo avere creato i tre vettori, crei un buffer

    dim sb as new stringbuilder()

    poi lo riempi seguendo la struttura della seconda parte del tuo codice

    sb.append("<table....")


    alla fine fai Me.Literal1.Text = sb.ToString() e la tabella è messa nel posto giusto
    Pietro

  10. #10
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    145
    Originariamente inviato da pietro09
    allora, prova a mettere, dove vuoi la tabella, un controllo litteral

    <asp:Literal ID="Literal1" runat="server"></asp:Literal>

    nel codice, dopo avere creato i tre vettori, crei un buffer

    dim sb as new stringbuilder()

    poi lo riempi seguendo la struttura della seconda parte del tuo codice

    sb.append("<table....")


    alla fine fai Me.Literal1.Text = sb.ToString() e la tabella è messa nel posto giusto
    cioè in pratica genero la tabella nel file .vb e poi la richiamo dal file .aspx?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.